Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1100132

Summary: Java WebStart app using JacORB fails on 1.7.0.55
Product: Red Hat Enterprise Linux 6 Reporter: James Livingston <jlivings>
Component: java-1.7.0-openjdkAssignee: Deepak Bhole <dbhole>
Status: CLOSED CURRENTRELEASE QA Contact: BaseOS QE - Apps <qe-baseos-apps>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.5CC: iweiss, joallen, sgehwolf
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-09-03 14:00:12 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
reproducer none

Description James Livingston 2014-05-22 05:10:35 UTC
When a Java WebStart application uses JacORB, it will fail on 1.7.0.55 in org.omg.CORBA.ORB.init() due to a change to use the system classloader. This has been reported upstream at https://bugs.openjdk.java.net/browse/JDK-8042462.


This is always reproducible. An obvious work-around is reverting to 1.7.0.51, at the cost of not having the fixes (including security ones) from that later version.

Comment 2 James Livingston 2014-05-22 05:25:24 UTC
This change in behaviour is mentioned in an update to the Oracle release notes at http://www.oracle.com/technetwork/java/javase/7u55-relnotes-2177812.html (which was not in the original release notes).

There is some information about the change in http://www.jacorb.org/bugzilla/show_bug.cgi?id=984#c5, which indicates Oracle knew of the potential compatibility issue but it was not seem as high risk.


The problem for Java WS is that they cannot add jars to the system classloader. In theory it could also be a problem for modular classloading environments such as OSGi or JBoss EAP 6, but I think it relatively unlikely that the system properties are going to be set in those environments.

The change that caused this is http://hg.openjdk.java.net/jdk7u/jdk7u60/corba/rev/a8d27c3fc4e4

Comment 4 Deepak Bhole 2014-05-26 16:43:33 UTC
Is this reproducible with IcedTea-Web or just with proprietary JDK? If it is reproducible only with proprietary, OpenJDK has no bearing here since only IcedTea-Web's plug-in/webstart uses OpenJDK.

Comment 5 James Livingston 2014-05-26 22:35:30 UTC
I'm currently trying to confirm that. The report was with openjdk, but I'm making sure that was on the client side too.

Comment 6 James Livingston 2014-05-28 05:17:38 UTC
The customer has confirmed that both the client (which is relevant) and server (which isn't) are running OpenJDK 1.7.0.55.

Comment 7 Deepak Bhole 2014-05-28 16:19:15 UTC
Ah okay. Do we have a test case reproducer?

Comment 8 James Livingston 2014-05-29 05:21:01 UTC
Created attachment 900225 [details]
reproducer

The problem doesn't require webstart to occur, it's just that WS is where it is difficult to work around, since you can't add jars to the endorsed directory.

Attached is a simple maven project, you can reproduce it by running "mvn package exec:java -Dexec.mainClass=bz1100132.Main"


The code is:
    System.setProperty("org.omg.CORBA.ORBClass", "org.jacorb.orb.ORB");
    System.setProperty("org.omg.CORBA.ORBSingletonClass", "org.jacorb.orb.ORBSingleton");
    org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init();

Which results in:
java.lang.reflect.InvocationTargetException
	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.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297)
	at java.lang.Thread.run(Thread.java:744)
Caused by: org.omg.CORBA.INITIALIZE: can't instantiate default ORB implementation org.jacorb.orb.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 bz1100132.Main.main(Main.java:7)
	... 6 more
Caused by: java.lang.ClassNotFoundException: org.jacorb.orb.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)
	... 8 more


A work-around to only set ORBClass and not ORBSingletonClass, which is doable if you are either passing them via JNLP properties or your code is setting them and not a library you don't control.

Comment 11 James Livingston 2014-09-02 22:33:19 UTC
http://bugs.java.com/view_bug.do?bug_id=8046603 indicated this was fixed in 1.7.0u65, which the EAP 6 testing on bug 1108723 seems to confirm.