After upgrading from 8u181-b13-0ubuntu0.16.04.1 to 8u181-b13-1ubuntu0.16.04.1 (i386 build) we've been seeing a file permissions issue that prevents anything running inside of the JVM from reading files that do exist. This was working correctly prior to the update.
I've also confirmed the issue by launching the code from a server that has yet to be updated, and also by rolling the server back and able to run the code on the previous package version.
Stack trace from trying to launch application in question:
Exception in thread "main" java.lang.SecurityException: Untrusted manifest entry: org/jdom/
at java.util.jar.Manifest.getTrustedAttributes(Manifest.java:155)
at java.util.jar.JavaUtilJarAccessImpl.getTrustedAttributes(JavaUtilJarAccessImpl.java:65)
at java.net.URLClassLoader.definePackage(URLClassLoader.java:496)
at java.net.URLClassLoader.definePackageInternal(URLClassLoader.java:423)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:452)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at jrunx.server.ServerManagement.getServersMetaData(ServerManagement.java:70)
at jrunx.kernel.JRun.main(JRun.java:157)
java.lang.SecurityException: Untrusted manifest entry: org/jdom/
at java.util.jar.Manifest.getTrustedAttributes(Manifest.java:155)
at java.util.jar.JavaUtilJarAccessImpl.getTrustedAttributes(JavaUtilJarAccessImpl.java:65)
at java.net.URLClassLoader.definePackage(URLClassLoader.java:496)
at java.net.URLClassLoader.definePackageInternal(URLClassLoader.java:423)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:452)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at jrunx.server.ServerManagement.refreshServersMetaData(ServerManagement.java:82)
at jrunx.server.ServerManagement.getServerRootDirectory(ServerManagement.java:154)
at jrunx.server.ServerManagement.getServerProperties(ServerManagement.java:191)
at jrunx.server.ServerManagement.getSystemProperties(ServerManagement.java:204)
at jrunx.kernel.JRun.setSystemProperties(JRun.java:688)
at jrunx.kernel.JRun.start(JRun.java:337)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at jrunx.kernel.JRun.invoke(JRun.java:180)
at jrunx.kernel.JRun.main(JRun.java:168)
java.lang.SecurityException: Untrusted manifest entry: org/jdom/
at java.util.jar.Manifest.getTrustedAttributes(Manifest.java:155)
at java.util.jar.JavaUtilJarAccessImpl.getTrustedAttributes(JavaUtilJarAccessImpl.java:65)
at java.net.URLClassLoader.definePackage(URLClassLoader.java:496)
at java.net.URLClassLoader.definePackageInternal(URLClassLoader.java:423)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:452)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at jrunx.server.ServerManagement.refreshServersMetaData(ServerManagement.java:82)
at jrunx.server.ServerManagement.getServerRootDirectory(ServerManagement.java:154)
at jrunx.server.ServerManagement.getServerProperties(ServerManagement.java:191)
at jrunx.server.ServerManagement.getSystemProperties(ServerManagement.java:204)
at jrunx.kernel.JRun.setSystemProperties(JRun.java:688)
at jrunx.kernel.JRun.<init>(JRun.java:442)
at jrunx.kernel.JRun$1.run(JRun.java:346)
at java.security.AccessController.doPrivileged(Native Method)
at jrunx.kernel.JRun.start(JRun.java:343)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at jrunx.kernel.JRun.invoke(JRun.java:180)
at jrunx.kernel.JRun.main(JRun.java:168)
java.lang.SecurityException: Untrusted manifest entry: org/jdom/
at java.util.jar.Manifest.getTrustedAttributes(Manifest.java:155)
at java.util.jar.JavaUtilJarAccessImpl.getTrustedAttributes(JavaUtilJarAccessImpl.java:65)
at java.net.URLClassLoader.definePackage(URLClassLoader.java:496)
at java.net.URLClassLoader.definePackageInternal(URLClassLoader.java:423)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:452)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at jrunx.server.ServerManagement.refreshServersMetaData(ServerManagement.java:82)
at jrunx.server.ServerManagement.getServerRootDirectory(ServerManagement.java:154)
at jrunx.server.ServerManagement.getServerRootDirectoryFile(ServerManagement.java:171)
at jrunx.kernel.JRun.<init>(JRun.java:455)
at jrunx.kernel.JRun$1.run(JRun.java:346)
at java.security.AccessController.doPrivileged(Native Method)
at jrunx.kernel.JRun.start(JRun.java:343)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at jrunx.kernel.JRun.invoke(JRun.java:180)
at jrunx.kernel.JRun.main(JRun.java:168)
server "xxxxxx" does not exist, the server root null was not found. Please verify that the /xxxxxxxxxx/servers.xml file contains valid data for this server.
Not that this may be either a permissions issue, or an issue with an xml library.
I've just installed the latest release of the jre and all other packages in the 16.04 repo and I'm still getting the same error.
Issue is not resolved.