[Qt-jambi-interest] Exceptions and crash after update to Qt Jambi 4.5.x
Gregor Mückl
GregorMueckl at gmx.de
Sun Aug 23 19:00:48 CEST 2009
Hi!
I tried to update the version of Qt Jambi that I use to 4.5.x, but it looks
like some internal changes since 4.4.3_01 give me serious trouble. During
startup of my application I get a sequence of exceptions and then a hard
crash, probably as a result of the exceptions. This happens with both 4.5.0_01
and 4.5.2_01, but with the latter I get more verbose output. The stack traces
that get logged are the following:
QtJambi: Exception pending in native code
Exception in thread "main" java.lang.NoClassDefFoundError:
eu/moonlight3d/ml3d/ui/mainwindow/view/Viewport
at com.trolltech.qt.internal.MetaObjectTools.internalTypeName(Native
Method)
at
com.trolltech.qt.internal.MetaObjectTools.buildMetaData(MetaObjectTools.java:434)
at
com.trolltech.qt.gui.QWidget.__qt_QWidget_QWidget_WindowFlags(Native Method)
at com.trolltech.qt.gui.QWidget.<init>(QWidget.java:77)
at com.trolltech.qt.gui.QWidget.<init>(QWidget.java:69)
at
eu.moonlight3d.ml3d.ui.mainwindow.view.ViewWindowSpace.<init>(Unknown Source)
at eu.moonlight3d.ml3d.ui.mainwindow.MainWindow.<init>(Unknown Source)
at
eu.moonlight3d.ml3d.ui.mainwindow.MainWindowFactory.createNew(Unknown Source)
at
eu.moonlight3d.framework.ui.UIManager.getMainWidget(UIManager.java:344)
at
eu.moonlight3d.framework.ui.ApplicationWindow.<init>(ApplicationWindow.java:80)
at eu.moonlight3d.framework.State.createMainWindow(State.java:367)
at eu.moonlight3d.framework.State.runInteractive(State.java:241)
at eu.moonlight3d.ml3d.ML3D.main(Unknown Source)
Caused by: java.lang.ClassNotFoundException:
eu.moonlight3d.ml3d.ui.mainwindow.view.Viewport
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 13 more
QtJambi: Exception pending in native code in file 'qtdynamicmetaobject.cpp':116
Exception in thread "main" java.lang.NoClassDefFoundError:
eu/moonlight3d/ml3d/ui/mainwindow/view/Viewport
at com.trolltech.qt.internal.MetaObjectTools.internalTypeName(Native
Method)
at
com.trolltech.qt.internal.MetaObjectTools.buildMetaData(MetaObjectTools.java:434)
at
com.trolltech.qt.gui.QWidget.__qt_QWidget_QWidget_WindowFlags(Native Method)
at com.trolltech.qt.gui.QWidget.<init>(QWidget.java:77)
at com.trolltech.qt.gui.QWidget.<init>(QWidget.java:69)
at
eu.moonlight3d.ml3d.ui.mainwindow.view.ViewWindowSpace.<init>(Unknown Source)
at eu.moonlight3d.ml3d.ui.mainwindow.MainWindow.<init>(Unknown Source)
at
eu.moonlight3d.ml3d.ui.mainwindow.MainWindowFactory.createNew(Unknown Source)
at
eu.moonlight3d.framework.ui.UIManager.getMainWidget(UIManager.java:344)
at
eu.moonlight3d.framework.ui.ApplicationWindow.<init>(ApplicationWindow.java:80)
at eu.moonlight3d.framework.State.createMainWindow(State.java:367)
at eu.moonlight3d.framework.State.runInteractive(State.java:241)
at eu.moonlight3d.ml3d.ML3D.main(Unknown Source)
Caused by: java.lang.ClassNotFoundException:
eu.moonlight3d.ml3d.ui.mainwindow.view.Viewport
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 13 more
QtJambi: Exception pending in native code
Exception in thread "main" java.lang.NoClassDefFoundError:
eu/moonlight3d/ml3d/ui/mainwindow/view/Viewport$ProjectionType
at com.trolltech.qt.internal.MetaObjectTools.internalTypeName(Native
Method)
at
com.trolltech.qt.internal.MetaObjectTools.buildMetaData(MetaObjectTools.java:434)
at
com.trolltech.qt.opengl.QGLWidget.__qt_QGLWidget_QGLFormat_QWidget_QGLWidget_WindowFlags(Native
Method)
at com.trolltech.qt.opengl.QGLWidget.<init>(QGLWidget.java:78)
at com.trolltech.qt.opengl.QGLWidget.<init>(QGLWidget.java:66)
at eu.moonlight3d.ml3d.ui.mainwindow.view.Viewport.<init>(Unknown
Source)
at
eu.moonlight3d.ml3d.ui.mainwindow.view.ViewWindowSpace.createViewport(Unknown
Source)
at
eu.moonlight3d.ml3d.ui.mainwindow.view.ViewWindowSpace.setupFourPaneView(Unknown
Source)
at
eu.moonlight3d.ml3d.ui.mainwindow.view.ViewWindowSpace.<init>(Unknown Source)
at eu.moonlight3d.ml3d.ui.mainwindow.MainWindow.<init>(Unknown Source)
at
eu.moonlight3d.ml3d.ui.mainwindow.MainWindowFactory.createNew(Unknown Source)
at
eu.moonlight3d.framework.ui.UIManager.getMainWidget(UIManager.java:344)
at
eu.moonlight3d.framework.ui.ApplicationWindow.<init>(ApplicationWindow.java:80)
at eu.moonlight3d.framework.State.createMainWindow(State.java:367)
at eu.moonlight3d.framework.State.runInteractive(State.java:241)
at eu.moonlight3d.ml3d.ML3D.main(Unknown Source)
Caused by: java.lang.ClassNotFoundException:
eu.moonlight3d.ml3d.ui.mainwindow.view.Viewport$ProjectionType
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 16 more
QtJambi: Exception pending in native code in file 'qtdynamicmetaobject.cpp':116
Exception in thread "main" java.lang.NoClassDefFoundError:
eu/moonlight3d/ml3d/ui/mainwindow/view/Viewport$ProjectionType
at com.trolltech.qt.internal.MetaObjectTools.internalTypeName(Native
Method)
at
com.trolltech.qt.internal.MetaObjectTools.buildMetaData(MetaObjectTools.java:434)
at
com.trolltech.qt.opengl.QGLWidget.__qt_QGLWidget_QGLFormat_QWidget_QGLWidget_WindowFlags(Native
Method)
at com.trolltech.qt.opengl.QGLWidget.<init>(QGLWidget.java:78)
at com.trolltech.qt.opengl.QGLWidget.<init>(QGLWidget.java:66)
at eu.moonlight3d.ml3d.ui.mainwindow.view.Viewport.<init>(Unknown
Source)
at
eu.moonlight3d.ml3d.ui.mainwindow.view.ViewWindowSpace.createViewport(Unknown
Source)
at
eu.moonlight3d.ml3d.ui.mainwindow.view.ViewWindowSpace.setupFourPaneView(Unknown
Source)
at
eu.moonlight3d.ml3d.ui.mainwindow.view.ViewWindowSpace.<init>(Unknown Source)
at eu.moonlight3d.ml3d.ui.mainwindow.MainWindow.<init>(Unknown Source)
at
eu.moonlight3d.ml3d.ui.mainwindow.MainWindowFactory.createNew(Unknown Source)
at
eu.moonlight3d.framework.ui.UIManager.getMainWidget(UIManager.java:344)
at
eu.moonlight3d.framework.ui.ApplicationWindow.<init>(ApplicationWindow.java:80)
at eu.moonlight3d.framework.State.createMainWindow(State.java:367)
at eu.moonlight3d.framework.State.runInteractive(State.java:241)
at eu.moonlight3d.ml3d.ML3D.main(Unknown Source)
Caused by: java.lang.ClassNotFoundException:
eu.moonlight3d.ml3d.ui.mainwindow.view.Viewport$ProjectionType
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 16 more
After that I get a VM crash. I find it strange that the NoClassDefFoundError is
thrown, although the class is definitely there and must have been loaded. It
must be noted, however, that the class in question is loaded through a
classloader that is created at runtime, after Qt Jambi has been loaded and
initialised through the default system classloader.
A further indication that this would be the case is that everything works fine
when I start the program from Eclipse, where the contents of the plugins is
(improperly) added to the system classpath at VM startup.
So, could it be that the Jambi internals fail to query the correct class
definition because they are looking for it in the wrong classloader? If so, is
there a workaround for this? I need my own classloader to be able to load
plugins.
Regards,
Gregor
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
Url : http://lists.qt.nokia.com/pipermail/qt-jambi-interest/attachments/20090823/d26d12e3/attachment.bin
More information about the Qt-jambi-interest
mailing list