Bug 455246

Summary: JNPL/WebStart not working on x86-64 with i586 package
Product: Red Hat Enterprise Linux 5 Reporter: Michal Nowak <mnowak>
Component: java-1.5.0-sunAssignee: jiri vanek <jvanek>
Status: CLOSED NOTABUG QA Contact: BaseOS QE - Apps <qe-baseos-apps>
Severity: medium Docs Contact:
Priority: medium    
Version: 5.2CC: dbhole, jjennings, mmalik, ohudlick, rbiba, syeghiay
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-01-06 09:21:52 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Michal Nowak 2008-07-14 13:10:27 UTC
Description of problem:

Install latest java-1.5.0-sun on x86-64 there's also i586 plugin pkg involved
which holds JNLP/WebStart (javaws binary). 

Run:

some JNLP from firefox of in shell, you will get

(JNLP from    http://java.sun.com/products/javawebstart/demos.html)

.qa.[root@x86-64-5s-1-m2 ~]#
/usr/lib/jvm/java-1.5.0-sun-1.5.0.16/jre/javaws/javaws /tmp/draw.jnlp
Java Web Start splash screen process exiting .....
Bad installation. No JRE found in configuration file: No such file or directory

Version-Release number of selected component (if applicable):

java-1.5.0-sun-plugin-1.5.0.16-1jpp.2.el5.i586

How reproducible:
always

Comment 1 Radek Bíba 2008-07-14 16:24:36 UTC
I wouldn't expect the i586 -plugin package stuff to work w/o having the i586
main package at the same time. I don't why we ship it for x86_64. Looks like a
compose issue to me...

Comment 2 Michal Nowak 2009-06-24 14:10:42 UTC
This is on RHEL-5-x86_64-java-sun-1.{5,6} only.

Comment 3 jared jennings 2010-03-03 22:13:58 UTC
I have this too with Sun Java 1.6.0.17. Here's my list of installed Java packages:

root@j /usr/lib/jvm/java-1.6.0-sun-1.6.0.17/jre/lib # rpm -qa java\* | sort
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
java-1.4.2-gcj-compat-devel-1.4.2.0-40jpp.115
java-1.4.2-gcj-compat-devel-1.4.2.0-40jpp.115
java-1.4.2-gcj-compat-javadoc-1.4.2.0-40jpp.115
java-1.4.2-gcj-compat-src-1.4.2.0-40jpp.115
java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
java-1.6.0-openjdk-devel-1.6.0.0-1.7.b09.el5
java-1.6.0-sun-1.6.0.17-1jpp.2.el5
java-1.6.0-sun-plugin-1.6.0.17-1jpp.2.el5
java-1.6.0-sun-plugin-1.6.0.17-1jpp.2.el5

The specific problem is that the operative .desktop file points at the i386 javaws binary, not the x86_64 binary:

j /usr/share/applications $ cat java-1.6.0-sun-javaws.desktop 
[...]
Exec=/usr/lib/jvm/java-1.6.0-sun-1.6.0.17/jre/bin/javaws
[...]

When I make a $HOME/.local/share/applications/java-1.6.0-sun-javaws.desktop with the Exec pointing to the x86_64 javaws binary, I can click on my Web Start link from Firefox and it starts properly.

Comment 4 Radek Bíba 2011-01-06 08:32:36 UTC
java-1.5.0-sun is no longer a supported Red Hat Enterprise Linux package [1], and java-1.6.0-sun is now available as "fully multilib" [2], so if you *really* need to have the 32-bit -plugin subpackage, whose java-1.6.0-sun-javaws.desktop file points to the 32-bit binaries, it's possible to install the 32-bit main package and everything will work. However, it's probably better to have just the 64-bit java-1.6.0-sun and java-1.6.0-sun-plugin. Looking at comment 3, I see two -plugin subpackages and just one main package; both of them contain 'java-1.6.0-sun-javaws.desktop', but with a sightly different path in Exec=. RPM should be smart enough to silently leave only the file from the native-arch package on disk in this case, so it's surprising to hear that 'cat java-1.6.0-sun-javaws.desktop' gives you the path from the other package. Jared, could you please re-install the packages? And is 'rpm -V java-1.6.0-sun-plugin.x86_64' clean?

[1] http://rhn.redhat.com/errata/RHSA-2010-0338.html
[2] http://rhn.redhat.com/errata/RHBA-2010-0555.html

Comment 5 jiri vanek 2011-01-06 09:21:52 UTC
java-1.5.0-sun is no longer a supported

Comment 6 jared jennings 2011-01-13 16:06:35 UTC
Radek, I no longer have the problem I had in Comment 3. Details follow.

I just installed java-1.6.0-sun-plugin version 1.6.0.22-1jpp.1.el5 using yum. Here's the rpm -V output immediately after the install:

root@down ~ # rpm -V java-1.6.0-sun-plugin.x86_64
root@down ~ # rpm -V java-1.6.0-sun-plugin.i586
S.5.....    /usr/share/applications/java-1.6.0-sun-ControlPanel.desktop
S.5.....    /usr/share/applications/java-1.6.0-sun-javaws.desktop
root@down ~ #

The javaws desktop file says:

root@down ~ # cat /usr/share/applications/java-1.6.0-sun-javaws.desktop
[...]
Exec=/usr/lib/jvm/java-1.6.0-sun-1.6.0.22.x86_64/jre/bin/javaws
[...]

And the executable pointed at is 64-bit:

root@down ~ # file /usr/lib/jvm/java-1.6.0-sun-1.6.0.22.x86_64/jre/bin/javaws
/usr/lib/jvm/java-1.6.0-sun-1.6.0.22.x86_64/jre/bin/javaws: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.4.0, dynamically linked (uses shared libs), for GNU/Linux 2.4.0, not stripped

I tried clicking on a JNLP file from https://j3d-webstart.dev.java.net/test/ and the right javaws appears to have been started. (There was some HTTP proxy silliness, so the test app did not start, but that's unrelated.)

So it appears that the problem I had with java-1.6.0-sun-1.6.0.17 has been fixed between then and now.

Comment 7 Radek Bíba 2011-01-13 18:48:24 UTC
Cool, I'm glad to head that!

Comment 8 Radek Bíba 2011-01-13 19:02:29 UTC
s/head/hear/ :)