Bug 964408 - java-1.8.0-openjdk: Wrong file permissions
java-1.8.0-openjdk: Wrong file permissions
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: java-1.8.0-openjdk (Show other bugs)
19
Unspecified Unspecified
unspecified Severity high
: ---
: ---
Assigned To: Omair Majid
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2013-05-18 04:43 EDT by Mikolaj Izdebski
Modified: 2013-05-31 23:11 EDT (History)
2 users (show)

See Also:
Fixed In Version: java-1.8.0-openjdk-1.8.0.0-0.7.b89.fc19
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-05-31 23:11:23 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Mikolaj Izdebski 2013-05-18 04:43:30 EDT
Description of problem:
Some files installed as part of java-1.8.0-openjdk have wrong permissions (they are not world-readable). For example:

$ ls -l /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.0.x86_64/jre/lib/ext/cldrdata.jar
-rw-------. 1 root root 3860434 May 13 19:40 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.0.x86_64/jre/lib/ext/cldrdata.jar

This breaks the whole JVM.

Version-Release number of selected component (if applicable):
java-1.8.0-openjdk.x86_64 1:1.8.0.0-0.6.b89.fc19

How reproducible:
Always.

Steps to Reproduce:
[kojan@f19 test]$ cat test.java
class test {
  public static void main(String[] _) {
    System.out.println(new java.util.Date());
  }
}
$ javac test.java
$ java test

Actual results:
Exception in thread "main" java.lang.InternalError: java.io.FileNotFoundException: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.0.x86_64/jre/lib/ext/cldrdata.jar (Permission denied)
	at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:851)
	at sun.misc.URLClassPath.getResource(URLClassPath.java:202)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:357)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:354)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:353)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:410)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
	at java.util.ResourceBundle$RBClassLoader.loadClass(ResourceBundle.java:478)
	at java.util.ResourceBundle$Control.newBundle(ResourceBundle.java:2618)
	at java.util.ResourceBundle.loadBundle(ResourceBundle.java:1477)
	at java.util.ResourceBundle.findBundle(ResourceBundle.java:1441)
	at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1337)
	at java.util.ResourceBundle.getBundle(ResourceBundle.java:865)
	at sun.util.resources.LocaleData$1.run(LocaleData.java:164)
	at sun.util.resources.LocaleData$1.run(LocaleData.java:160)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.util.resources.LocaleData.getBundle(LocaleData.java:160)
	at sun.util.resources.LocaleData.getTimeZoneNames(LocaleData.java:100)
	at sun.util.locale.provider.LocaleResources.getTimeZoneNames(LocaleResources.java:261)
	at sun.util.locale.provider.TimeZoneNameProviderImpl.getDisplayNameArray(TimeZoneNameProviderImpl.java:122)
	at sun.util.locale.provider.TimeZoneNameProviderImpl.getDisplayName(TimeZoneNameProviderImpl.java:98)
	at sun.util.locale.provider.TimeZoneNameUtility$TimeZoneNameGetter.getName(TimeZoneNameUtility.java:317)
	at sun.util.locale.provider.TimeZoneNameUtility$TimeZoneNameGetter.getObject(TimeZoneNameUtility.java:270)
	at sun.util.locale.provider.TimeZoneNameUtility$TimeZoneNameGetter.getObject(TimeZoneNameUtility.java:256)
	at sun.util.locale.provider.LocaleServiceProviderPool.getLocalizedObjectImpl(LocaleServiceProviderPool.java:299)
	at sun.util.locale.provider.LocaleServiceProviderPool.getLocalizedObject(LocaleServiceProviderPool.java:283)
	at sun.util.locale.provider.TimeZoneNameUtility.retrieveDisplayName(TimeZoneNameUtility.java:135)
	at java.util.TimeZone.getDisplayName(TimeZone.java:404)
	at java.util.Date.toString(Date.java:1044)
	at java.lang.String.valueOf(String.java:2984)
	at java.io.PrintStream.println(PrintStream.java:821)
	at test.main(test.java:3)
Caused by: java.io.FileNotFoundException: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.0.x86_64/jre/lib/ext/cldrdata.jar (Permission denied)
	at java.util.zip.ZipFile.open(Native Method)
	at java.util.zip.ZipFile.<init>(ZipFile.java:214)
	at java.util.zip.ZipFile.<init>(ZipFile.java:144)
	at java.util.jar.JarFile.<init>(JarFile.java:158)
	at java.util.jar.JarFile.<init>(JarFile.java:95)
	at sun.misc.URLClassPath$JarLoader.getJarFile(URLClassPath.java:723)
	at sun.misc.URLClassPath$JarLoader.access$600(URLClassPath.java:604)
	at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:684)
	at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:677)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.misc.URLClassPath$JarLoader.ensureOpen(URLClassPath.java:676)
	at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:849)
	... 34 more

Expected results:
Current date is printed.
Comment 1 Fedora Update System 2013-05-21 12:03:20 EDT
java-1.8.0-openjdk-1.8.0.0-0.7.b89.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/java-1.8.0-openjdk-1.8.0.0-0.7.b89.fc19
Comment 2 Omair Majid 2013-05-21 12:33:06 EDT
The workaround above should be sufficient for now.

The root of the problem appears to be java-1.7.0-openjdk (which is used to build java-1.8.0-openjdk), which mangles permissions on 'jar uf':
http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-May/023369.html
Comment 3 Fedora Update System 2013-05-22 18:38:17 EDT
Package java-1.8.0-openjdk-1.8.0.0-0.7.b89.fc19:
* should fix your issue,
* was pushed to the Fedora 19 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing java-1.8.0-openjdk-1.8.0.0-0.7.b89.fc19'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-8859/java-1.8.0-openjdk-1.8.0.0-0.7.b89.fc19
then log in and leave karma (feedback).
Comment 4 Fedora Update System 2013-05-31 23:11:23 EDT
java-1.8.0-openjdk-1.8.0.0-0.7.b89.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.

Note You need to log in before you can comment on or make changes to this bug.