[jacorb-developer] _non_existent throws OBJECT_NOT_EXIST instead of returning true

Hugo Roenick hroenick at gmail.com
Wed Jun 19 02:19:25 CEST 2013


Just complementing, I ran this demo using Jacorb 3.2 and JRE 6.

Regards,
-- Hugo

On Jun 18, 2013, at 9:15 PM, Hugo Roenick wrote:

> Hi everyone.
> 
>> On Friday, September 28, 2012 18:54:36 Nick Cross wrote:
>> > Hi,
>> > 
>> > Please can you retest using the current version and provide a test case.
>> > If you wanted you can access the code in github and provide a pull request.
>> 
>> I will try using the latest version of JacORB when I find the time and let you 
>> know my findings.
>> 
>> For now I created a workaround helper method that wraps the call in a try 
>> catch and returns true when it catches the OBJECT_NOT_EXIST exception.
>> 
>> > Thanks
>> > 
>> > Nick
>> 
>> Thanks!
>> 
>> Lothar
> 
> 
> I'd like to confirm this bug reported in september-2012 by Lothar Werzinger (lothar at tradescape.biz). Hoping to help to fix it, I made a small change in the demo "corbaloc" provided in the Jocorb 3.2 package. The change I made basically was only to replace the object key of the costructed corbaloc in the client side to an invalid one.
> 
> FROM:
> 
>       // Lets call the known short object key
>       System.out.println ("Calling server using short key form...");
> 
>       org.omg.CORBA.Object obj = orb.string_to_object("corbaloc:iiop:127.0.0.1:6969/VeryShortKey");
> 
> TO:
> 
>     // Lets call the known short object key
>     System.out.println("Calling server using short key form...");
> 
>     // Building a corbalog with invalid ObjectKey
>     org.omg.CORBA.Object obj =
>       orb.string_to_object("corbaloc:iiop:127.0.0.1:6969/InvalidKey");
>     try {
>       if (obj != null && !obj._non_existent()) {
>         System.out.println("Object does exists");
>       }
>       else {
>         System.out.println("Object does not exists");
>       }
>     }
>     catch (OBJECT_NOT_EXIST e) {
>       System.err.println("We found a bug! :-s");
>       e.printStackTrace();
>       return;
>     }
> 
> 
> 
> Running the demo, we have the following result:
> 
>      [jaco] Calling server using short key form...
>      [jaco] Jun 18, 2013 2:42:09 PM org.jacorb.orb.giop.ClientConnectionManager getConnection
>      [jaco] INFO: ClientConnectionManager: found ClientGIOPConnection to 127.0.0.1:6969 (53c86be5)
>      [jaco] Jun 18, 2013 2:42:09 PM org.jacorb.orb.giop.ServerRequestListener requestReceived
>      [jaco] WARNING: Received a request with a non-jacorb object key
>      [jaco] We found a bug! :-s
>      [jaco] org.omg.CORBA.OBJECT_NOT_EXIST: Server-side Exception: null
>      [jaco] 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>      [jaco] 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>      [jaco] 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>      [jaco] 	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>      [jaco] 	at org.jacorb.orb.SystemExceptionHelper.read(SystemExceptionHelper.java:222)
>      [jaco] 	at org.jacorb.orb.ReplyReceiver.getReply(ReplyReceiver.java:455)
>      [jaco] 	at org.jacorb.orb.Delegate._invoke_internal(Delegate.java:1389)
>      [jaco] 	at org.jacorb.orb.Delegate.invoke_internal(Delegate.java:1160)
>      [jaco] 	at org.jacorb.orb.Delegate.invoke(Delegate.java:1148)
>      [jaco] 	at org.jacorb.orb.Delegate.invokeBuiltin(Delegate.java:2039)
>      [jaco] 	at org.jacorb.orb.Delegate.non_existent(Delegate.java:1996)
>      [jaco] 	at org.omg.CORBA.portable.ObjectImpl._non_existent(ObjectImpl.java:61)
>      [jaco] 	at demo.corbaloc.Client.main(Client.java:31)
> 
> 
> Regards,
> -- Hugo 
> 



More information about the jacorb-developer mailing list