Search code examples
javacorbaidltao

NullPointerException in ORB.getPresentationManager when calling ORB.string_to_object


Admittedly I'm new to CORBA and using ORBs. I have some code that gets installed on a 3rd party machine that is using the TAO ORB version 1.3. When my code calls:

String myObjectString = "IOR:010000002d00000049444c3a637573732e696174612e6f72672f436f6d706f6e656e74732f4d656469614f75747075743a312e3000000000030000000000000038000000010102000a0000006c6f63616c686f737400204e1b00000014010f00525354a90b6c57ea3c060002000000010000000300000000000000000000000038000000010102000a0000006c6f63616c686f737400214e1b00000014010f00525354a90b6c57ea3c060002000000010000000300000000000000000000000038000000010102000a0000006c6f63616c686f737400224e1b00000014010f00525354a90b6c57ea3c06000200000001000000030000000000000000";

ORB.string_to_object(myObjectString);

I get an exception:

java.lang.NullPointerException at com.sun.corba.se.spi.orb.ORB.getPresentationManager(Unknown Source) at com.sun.corba.se.spi.orb.ORB.getStubFactoryFactory(Unknown Source) at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_Object(Unknown Source) at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_Object(Unknown Source) at com.sun.corba.se.impl.encoding.CDRInputStream.read_Object(Unknown Source) at com.sun.corba.se.impl.resolver.INSURLOperationImpl.getIORFromString(Unknown Source) at com.sun.corba.se.impl.resolver.INSURLOperationImpl.operate(Unknown Source) at com.sun.corba.se.impl.orb.ORBImpl.string_to_object(Unknown Source) at CussClient.enableMediaOutput(CussClient.java:1232) at CussClient.ActivateComponents(CussClient.java:1879) at CussClient.setApplicationState(CussClient.java:268) at CussClient.HandleEvent(CussClient.java:2425) at evtListenerImpl.callback(evtListenerImpl.java:31) at types.evtListenerPOA._invoke(evtListenerPOA.java:49) at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(Unknown Source) at com.sun.corba.se.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(Unknown Source) at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(Unknown Source) at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(Unknown Source) at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleInput(Unknown Source) at com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(Unknown Source) at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.handleRequest(Unknown Source) at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.dispatch(Unknown Source) at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.doWork(Unknown Source) at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.performWork(Unknown Source) at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(Unknown Source)

This same code works on other 3rd party machines running other ORBs, so I'm not sure if this is an issue with the TAO ORB, or something else. Are there any ORB masters that can tell me why this might be happening?


Solution

  • This ended up being caused by the JRE version that was installed on the 3rd party machine.

    This was related to the airline industry CUSS (Common Use Self Service) version 1.3 requirements that state what version of Java is required to be installed. In the CUSS docs it stated that Java 1.7.0_21 and above were allowed. In the Errata docs it was changed to require Java 1.7.0_21 specifically.