JDK-8043148 : ClassNotFoundException: org.openorb.CORBA.ORBSingleton
  • Type: Bug
  • Component: other-libs
  • Sub-Component: corba:orb
  • Affected Version: 7u55
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: linux_suse_sles_10
  • CPU: x86_64
  • Submitted: 2014-05-12
  • Updated: 2014-08-19
  • Resolved: 2014-08-19
Related Reports
Duplicate :  
Description
FULL PRODUCT VERSION :
java version "1.7.0_55"
Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
Java HotSpot(TM) Server VM (build 24.55-b03, mixed mode)

ADDITIONAL OS VERSION INFORMATION :
SUSE 10 X86_64

A DESCRIPTION OF THE PROBLEM :
When we upgrade JDK from 7u51 to 7u55, our tomcat aplication is not able to init the OpenORB, it meets following error:

org.omg.CORBA.INITIALIZE: can't instantiate default ORB implementation org.openorb.CORBA.ORBSingleton  vmcid: 0x0  minor code: 0  completed: No
        at org.omg.CORBA.ORB.create_impl_with_systemclassloader(ORB.java:309)
        at org.omg.CORBA.ORB.init(ORB.java:294)
        at org.openorb.CORBA.kernel.OpenORBLoader.init(Unknown Source)
        at org.openorb.CORBA.ORB.set_parameters(Unknown Source)
        at org.omg.CORBA.ORB.init(ORB.java:369)
        ..............
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
        at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1079)
        at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1002)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:506)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
        at org.apache.catalina.core.StandardService.start(StandardService.java:525)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.ClassNotFoundException: org.openorb.CORBA.ORBSingleton
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:270)
        at org.omg.CORBA.ORB.create_impl_with_systemclassloader(ORB.java:306)
        ... 39 more		
and this error can be reproduced always.

With JDK 7u51, the OpenORB works finely. We compare the code of ORB.java between JDK7U51 and JDK7U55, we find that 7U55 changes the implementation of loading class, instead of using the Thread context class loader it is now hard coded to use the SystemClassLoader, we think this is the reason why the OpenORB class is not found.


REPRODUCIBILITY :
This bug can be reproduced always.


Comments
Mark - can we close this as a duplicate of other ORBSingleton issues ?
19-08-2014