[jacorb-developer] OBJ_ADAPTER minor ZERO

Nick Cross jacorb at goots.org
Sat Aug 22 00:12:36 CEST 2015


With regards to the minor code first - I do agree that here (and likely 
in other places) the use of minor codes need to be checked. The part of 
the code dates from November 2002 and the thread "Possible bug 
registering transient servants using _this()". I will attempt to dig 
further into the original changes and get back to you.

Regards

Nick


On 17/08/15 13:03, Hugo Roenick wrote:
> Hi guys.
>
> We received a report from some of ours clients that they are receiving an OBJ_ADAPTER exception, with minor ZERO. The CORBA specification defines minor codes 1 to 7 and ZERO is not a valid one. We still didn't manage to isolate the problem and didn't understand what may be causing this behaviour.
>
> Sorry about that. I know that this lack of information really restricts how you could help.
>
> It seems to have some relation with multithreading, but we couldn't identify any other clue while inspecting the JacORB's code, except from the stack itself. Here is the error stack trace:
>
> Exception in thread "RequestProcessor-4" org.omg.CORBA.OBJ_ADAPTER:
> 	at org.jacorb.orb.ServantDelegate.poa(ServantDelegate.java:122)
> 	at org.omg.PortableServer.Servant._poa(Servant.java:30)
> 	at org.jacorb.orb.portableInterceptor.ServerRequestInfoImpl.setServant(ServerRequestInfoImpl.java:162)
> 	at org.jacorb.orb.portableInterceptor.ServerRequestInfoImpl.<init>(ServerRequestInfoImpl.java:99)
> 	at org.jacorb.poa.RequestProcessor.process(RequestProcessor.java:574)
> 	at org.jacorb.poa.RequestProcessor.run(RequestProcessor.java:830)
>
> The ServantDelegate poa method is:
>
>      final public POA poa(org.omg.PortableServer.Servant self)
>      {
>          check();
>
>          _getPOACurrent();
>
>          try
>          {
>              // CORBA 2.4 added the get_servant() operation to the
>              // PortableServer::Current interface. As of JDK 1.4.2,
>              // however, the class org.omg.PortableServant.Current
>              // in Sun's JDK does not have the method get_servant().
>              // Instead of simply saying _current.get_servant(), below
>              // we say ((org.jacorb.poa.Current)_current).get_servant().
>              // The cast allows JacORB to run with the obsolete Sun class.
>              if( ((org.jacorb.poa.Current)_current).get_servant() != self )
>              {
>                  throw new org.omg.CORBA.OBJ_ADAPTER(); <<--------- line 122 ----------------------------
>              }
>
>              return _current.get_POA();
>          }
>          catch(NoContext e)
>          {
>              throw new org.omg.CORBA.OBJ_ADAPTER(e.toString());
>          }
>      }
>
> I tried to identify what could be provoking this check mismatch in ServantDelegate, but I still have no clue.
> We are still using JacORB version 3.5.
>
> Sorry about the lack of information and test case.
> Hope you guys can provide us any help on this matter. Any enlightenment or tip so we carry on with the investigation?
>
> Regards,
> -- Hugo
>
> _______________________________________________
> jacorb-developer maillist  -  jacorb-developer at lists.spline.inf.fu-berlin.de
> https://lists.spline.inf.fu-berlin.de/mailman/listinfo/jacorb-developer
>



More information about the jacorb-developer mailing list