I've recently switched to the f20, and each time I shutdown
Eclipse,
ABRT reports an error (via abrt-java-connector):
Uncaught java.lang.ClassNotFoundException exception in thread "main" in
a method java.lang.ClassLoader.loadClass() with signature
(Ljava/lang/String;Z
)Ljava/lang/Class;
Exception in thread "main"
java.lang.ClassNotFoundException:
.usr.lib64.eclipse..plugins.org.eclipse.equinox.launcher_1.3.0.v20131030-1100.jar
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
[jar:file:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc20.x86_64/jre/lib/rt.ja
r!/java/net/URLClassLoader$1.class]
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
[jar:file:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc20.x86_64/jre/lib/rt.ja
r!/java/net/URLClassLoader$1.class]
at java.security.AccessController.doPrivileged(Native Method)
[jar:file:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc20.x86_64/jre/lib/r
t.jar!/java/security/AccessController.class]
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
[jar:file:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc20.x86_64/jre/lib/r
t.jar!/java/net/URLClassLoader.class]
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
[jar:file:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc20.x86_64/jre/lib/rt.jar
!/java/lang/ClassLoader.class]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
[jar:file:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc20.x86_64/jre/li
b/rt.jar!/sun/misc/Launcher$AppClassLoader.class]
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
[jar:file:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc20.x86_64/jre/lib/rt.jar
!/java/lang/ClassLoader.class]
I was able to use SystemTap's Java probe support to do a general search for this :
probe
java("/usr/lib64/eclipse//plugins/org.eclipse.equinox.launcher_1.3.0.v20131104-1241.jar").class("java.net.URLClassLoader").method("findClass(String):366")
{
printf("ClassNotFoundException : %s\n", user_string($arg1))
}
...
ClassNotFoundException : com.sun.org.apache.xml.internal.serializer.XMLEntities
ClassNotFoundException : com.sun.org.apache.xml.internal.serializer.XMLEntities
ClassNotFoundException : com.sun.org.apache.xml.internal.serializer.XMLEntities_en
ClassNotFoundException : com.sun.org.apache.xml.internal.serializer.XMLEntities_en
ClassNotFoundException : com.sun.org.apache.xml.internal.serializer.XMLEntities_en_US
ClassNotFoundException : com.sun.org.apache.xml.internal.serializer.XMLEntities_en_US
Even without that I was still able to remotely debug as well without seeing the JVM
crash so I managed to get a stacktrace.
java.lang.ClassNotFoundException: com.sun.org.apache.xml.internal.serializer.XMLEntities
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 java.lang.ClassLoader.loadClass(ClassLoader.java:412)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.util.ResourceBundle$RBClassLoader.loadClass(ResourceBundle.java:450)
at java.util.ResourceBundle$Control.newBundle(ResourceBundle.java:2566)
at java.util.ResourceBundle.loadBundle(ResourceBundle.java:1436)
at java.util.ResourceBundle.findBundle(ResourceBundle.java:1400)
at java.util.ResourceBundle.findBundle(ResourceBundle.java:1354)
at java.util.ResourceBundle.findBundle(ResourceBundle.java:1354)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1296)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:721)
at com.sun.org.apache.xml.internal.serializer.CharInfo.<init>(CharInfo.java:183)
at com.sun.org.apache.xml.internal.serializer.CharInfo.<init>(CharInfo.java:55)
at com.sun.org.apache.xml.internal.serializer.CharInfo$1.run(CharInfo.java:474)
at java.security.AccessController.doPrivileged(Native Method)
at
com.sun.org.apache.xml.internal.serializer.CharInfo.getCharInfoBasedOnPrivilege(CharInfo.java:471)
at com.sun.org.apache.xml.internal.serializer.CharInfo.getCharInfo(CharInfo.java:507)
at
com.sun.org.apache.xml.internal.serializer.ToXMLStream.<clinit>(ToXMLStream.java:59)
at
com.sun.org.apache.xalan.internal.xsltc.runtime.output.TransletOutputHandlerFactory.getSerializationHandler(TransletOutputHandlerFactory.java:165)
at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getOutputHandler(TransformerImpl.java:461)
at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:344)
at org.eclipse.jdt.internal.corext.util.History.save(History.java:312)
at org.eclipse.jdt.internal.corext.util.History.save(History.java:190)
at org.eclipse.jdt.internal.ui.JavaPlugin.stop(JavaPlugin.java:618)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:771)
at java.security.AccessController.doPrivileged(Native Method)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.stop(BundleContextImpl.java:764)
at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(BundleHost.java:510)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.suspend(AbstractBundle.java:566)
at org.eclipse.osgi.framework.internal.core.Framework.suspendBundle(Framework.java:1206)
at
org.eclipse.osgi.framework.internal.core.StartLevelManager.decFWSL(StartLevelManager.java:592)
at
org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:257)
at
org.eclipse.osgi.framework.internal.core.StartLevelManager.shutdown(StartLevelManager.java:215)
at
org.eclipse.osgi.framework.internal.core.InternalSystemBundle.suspend(InternalSystemBundle.java:284)
at org.eclipse.osgi.framework.internal.core.Framework.shutdown(Framework.java:692)
at org.eclipse.osgi.framework.internal.core.Framework.close(Framework.java:600)
at org.eclipse.core.runtime.adaptor.EclipseStarter.shutdown(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:200)
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.eclipse.equinox.launcher.Main.invokeFramework(Main.java:645)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:600)
at org.eclipse.equinox.launcher.Main.run(Main.java:1459)
at org.eclipse.equinox.launcher.Main.main(Main.java:1435)
Hope this helps,
--
Roland Grunberg