Glimpse 3.0.0 and Java 11 compatibility?

47 views
Skip to first unread message

Francis Maurais

unread,
Sep 20, 2019, 2:08:39 PM9/20/19
to Glimpse
Is Glimpse 3.0.0 compatible with OpenJDK Java 11?

My application is being migrated from Java JDK 8 to OpenJDK 11.0.2.  My glimpse map display works properly in Java 8 (using glimpse 3.0.0 and jogl/gluegen 2.2.4), but throws exceptions when built w/ Java 11.
I'm not sure if there's an incompatibility issue, or just a configuration problem I haven't found yet.

The exception stacktrace I see looks like:

Exception in thread "AWT-EventQueue-0-FPSAWTAnimator#00-Timer0" com.jogamp.opengl.util.AnimatorBase$UncaughtAnimatorException: javax.media.opengl.GLException: Caught ExceptionInInitializerError: null on thread AWT-EventQueue-0-FPSAWTAnimator#00-Timer0

       at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:84)

       at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:449)

       at com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:176)

       at java.base/java.util.TimerThread.mainLoop(Timer.java:556)

       at java.base/java.util.TimerThread.run(Timer.java:506)

Caused by: javax.media.opengl.GLException: Caught ExceptionInInitializerError: null on thread AWT-EventQueue-0-FPSAWTAnimator#00-Timer0

       at javax.media.opengl.GLException.newGLException(GLException.java:75)

       at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1311)

       at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1131)

       at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:675)

       at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:77)

       ... 4 more

Caused by: java.lang.ExceptionInInitializerError

       at com.metsci.glimpse.util.buffer.DirectBufferUtils.ensureCapacity(DirectBufferUtils.java:274)

       at com.metsci.glimpse.util.buffer.DirectBufferUtils.ensureAdditionalCapacity(DirectBufferUtils.java:236)

       at com.metsci.glimpse.util.buffer.DirectBufferUtils.grow2f(DirectBufferUtils.java:172)

       at com.metsci.glimpse.support.shader.line.LinePathData.appendVertex(LinePathData.java:231)

       at com.metsci.glimpse.support.shader.line.LinePathData.moveTo(LinePathData.java:165)

       at com.metsci.glimpse.support.shader.line.LinePath.moveTo(LinePath.java:79)

       at com.metsci.glimpse.support.shader.line.LinePath.moveTo(LinePath.java:74)

       at com.metsci.glimpse.axis.painter.NumericXAxisPainter.paintTicks(NumericXAxisPainter.java:112)

       at com.metsci.glimpse.axis.painter.NumericXAxisPainter.doPaintTo(NumericXAxisPainter.java:67)

       at com.metsci.glimpse.painter.base.GlimpsePainterBase.paintTo(GlimpsePainterBase.java:183)

       at com.metsci.glimpse.layout.GlimpseLayoutDelegate.paintTo(GlimpseLayoutDelegate.java:165)

       at com.metsci.glimpse.layout.GlimpseLayout.paintTo(GlimpseLayout.java:462)

       at com.metsci.glimpse.layout.GlimpseLayoutDelegate.paintTo(GlimpseLayoutDelegate.java:165)

       at com.metsci.glimpse.layout.GlimpseLayout.paintTo(GlimpseLayout.java:462)

       at com.metsci.glimpse.canvas.NewtSwingGlimpseCanvas$1.display(NewtSwingGlimpseCanvas.java:185)

       at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:690)

       at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:672)

       at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:441)

       at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1277)

       ... 7 more

Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: sun.misc.Cleaner

       at com.metsci.glimpse.util.buffer.DirectBufferDealloc.<clinit>(DirectBufferDealloc.java:69)

       ... 26 more

Caused by: java.lang.ClassNotFoundException: sun.misc.Cleaner

       at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)

       at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)

       at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)

       at java.base/java.lang.Class.forName0(Native Method)

       at java.base/java.lang.Class.forName(Class.java:315)

       at com.metsci.glimpse.util.buffer.DirectBufferDealloc.<clinit>(DirectBufferDealloc.java:64)

       ... 26 more

Exception in thread "AWT-EventQueue-0-Display-.windows_nil-1-EDT-1" javax.media.opengl.GLException: Caught NoClassDefFoundError: Could not initialize class com.metsci.glimpse.util.buffer.DirectBufferDealloc on thread AWT-EventQueue-0-Display-.windows_nil-1-EDT-1

       at javax.media.opengl.GLException.newGLException(GLException.java:75)

       at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1311)

       at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1131)

       at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:675)

       at jogamp.opengl.GLAutoDrawableBase.defaultWindowRepaintOp(GLAutoDrawableBase.java:213)

       at com.jogamp.newt.opengl.GLWindow.access$100(GLWindow.java:119)

       at com.jogamp.newt.opengl.GLWindow$2.windowRepaint(GLWindow.java:136)

       at jogamp.newt.WindowImpl.consumeWindowEvent(WindowImpl.java:3692)

       at jogamp.newt.WindowImpl.consumeEvent(WindowImpl.java:2665)

       at jogamp.newt.WindowImpl.doEvent(WindowImpl.java:2611)

       at jogamp.newt.WindowImpl.windowRepaint(WindowImpl.java:3956)

       at jogamp.newt.driver.windows.DisplayDriver.DispatchMessages0(Native Method)

       at jogamp.newt.driver.windows.DisplayDriver.dispatchMessagesNative(DisplayDriver.java:120)

       at jogamp.newt.DisplayImpl.dispatchMessages(DisplayImpl.java:733)

       at jogamp.newt.DisplayImpl$7.run(DisplayImpl.java:656)

       at jogamp.newt.DefaultEDTUtil$NEDT.run(DefaultEDTUtil.java:343)

Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.metsci.glimpse.util.buffer.DirectBufferDealloc

       at com.metsci.glimpse.util.buffer.DirectBufferUtils.ensureCapacity(DirectBufferUtils.java:274)

       at com.metsci.glimpse.util.buffer.DirectBufferUtils.ensureAdditionalCapacity(DirectBufferUtils.java:236)

       at com.metsci.glimpse.util.buffer.DirectBufferUtils.grow2f(DirectBufferUtils.java:172)

       at com.metsci.glimpse.support.shader.line.LinePathData.appendVertex(LinePathData.java:231)

       at com.metsci.glimpse.support.shader.line.LinePathData.moveTo(LinePathData.java:165)

       at com.metsci.glimpse.support.shader.line.LinePath.moveTo(LinePath.java:79)

       at com.metsci.glimpse.support.shader.line.LinePath.moveTo(LinePath.java:74)

       at com.metsci.glimpse.axis.painter.NumericXAxisPainter.paintTicks(NumericXAxisPainter.java:112)

       at com.metsci.glimpse.axis.painter.NumericXAxisPainter.doPaintTo(NumericXAxisPainter.java:67)

       at com.metsci.glimpse.painter.base.GlimpsePainterBase.paintTo(GlimpsePainterBase.java:183)

       at com.metsci.glimpse.layout.GlimpseLayoutDelegate.paintTo(GlimpseLayoutDelegate.java:165)

       at com.metsci.glimpse.layout.GlimpseLayout.paintTo(GlimpseLayout.java:462)

       at com.metsci.glimpse.layout.GlimpseLayoutDelegate.paintTo(GlimpseLayoutDelegate.java:165)

       at com.metsci.glimpse.layout.GlimpseLayout.paintTo(GlimpseLayout.java:462)

       at com.metsci.glimpse.canvas.NewtSwingGlimpseCanvas$1.display(NewtSwingGlimpseCanvas.java:185)

       at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:690)

       at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:672)

       at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:441)

       at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1277)

       ... 14 more

Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: javax.media.opengl.GLException: Caught GLException: Surface not ready to lock: WindowsOnscreenWGLDrawable[Realized true,

       Factory   jogamp.opengl.windows.wgl.WindowsWGLDrawableFactory@750853a5,

       Handle    0x0,

       Surface   jogamp.newt.driver.windows.WindowDriver[Config WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[obj 0x7bcfb374]], idx 0], pfdID 7, ARB-Choosen true,

       requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL3/GL4.hw], on-scr[.]],

       chosen    GLCaps[wgl vid 7 arb: rgba 8/8/8/8, opaque, accum-rgba 16/16/16/16, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL3/GL4.hw], on-scr[.]]],

NEWT-Screen[.windows_nil-1-s0, idx 0, refCount 1, vsize [ 0 / -900  1920 x 1980 ] [pixels], [ 0 / -900  1920 x 1980 ] [window], DefaultGraphicsScreen[WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[obj 0x7bcfb374]], idx 0], NEWT-Display[.windows_nil-1, excl false, refCount 1, hasEDT true, edtRunning true, WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[obj 0x7bcfb374]]], monitors: [Monitor[Id 0x0, 344 x 194 mm, viewport [ 0 / 0  1920 x 1080 ] [pixels], [ 0 / 0  1920 x 1080 ] [window], orig [Id 0x0, [ 1920 x 1080 pixels x 32 bpp ] @ 60.0 Hz, flags [], 0 degr], curr [Id 0x0, [ 1920 x 1080 pixels x 32 bpp ] @ 60.0 Hz, flags [], 0 degr], modeChanged false, modeCount 32], Monitor[Id 0x1, 408 x 255 mm, viewport [ 185 / -900  1440 x 900 ] [pixels], [ 185 / -900  1440 x 900 ] [window], orig [Id 0x0, [ 1440 x 900 pixels x 32 bpp ] @ 60.0 Hz, flags [], 0 degr], curr [Id 0x0, [ 1440 x 900 pixels x 32 bpp ] @ 60.0 Hz, flags [], 0 degr], modeChanged false, modeCount 36]]],

ParentWindow JAWTWindow[0x7ff038d5][JVM version: 11.0.2 (11.0.2 update 0)

JAWT version: 0x10004, CA_LAYER: false, isLayeredSurface false, bounds [ 0 / 0  986 x 880 ], insets [ l 0, r 0 - t 0, b 0 - 0x0], pixelScale 1x1, shallUseOffscreenLayer false, isOffscreenLayerSurface false, attachedSurfaceLayer 0x0, windowHandle 0xd07d0, surfaceHandle 0x0, bounds [ 0 / 0  986 x 880 ], insets [ l 0, r 0 - t 0, b 0 - 0x0], window [0/0 1210x875], pixels[s 1x1 -> 1210x875], visible true, lockedExt false,

       config AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type .awt, connection \Display0, unitID 0, awtDevice Win32GraphicsDevice[screen=0], handle 0x0], idx 0],

       chosen    GLCaps[wgl vid 7 arb: rgba 8/8/8/8, opaque, accum-rgba 16/16/16/16, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL3/GL4.hw], on-scr[.]],

       requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL3/GL4.hw], on-scr[.]],

sun.awt.Win32GraphicsConfig@7356720b[dev=Win32GraphicsDevice[screen=0],pixfmt=7],

       encapsulated WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[obj 0x7bcfb374]], idx 0], pfdID 7, ARB-Choosen true,

       requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL3/GL4.hw], on-scr[.]],

       chosen    GLCaps[wgl vid 7 arb: rgba 8/8/8/8, opaque, accum-rgba 16/16/16/16, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL3/GL4.hw], on-scr[.]]]],

       awtComponent com.jogamp.newt.awt.NewtCanvasAWT[canvas0,0,0,1210x875],

       surfaceLock <66338731, 349b35a8>[count 0, qsz 0, owner <NULL>]],

ParentWindowHandle 0xd07d0 (true),

WindowHandle 0x160616,

SurfaceHandle 0x0 (lockedExt window false, surface false),

window[0/0 (auto false) 986x880], pixel[986x880],

Visible false, focus true,

Undecorated false (true),

AlwaysOnTop false, Fullscreen false,

WrappedSurface null,

ChildWindows 0, SurfaceUpdatedListeners num 1 [JAWTWindow[0x7ff038d5][JVM version: 11.0.2 (11.0.2 update 0)

JAWT version: 0x10004, CA_LAYER: false, isLayeredSurface false, bounds [ 0 / 0  986 x 880 ], insets [ l 0, r 0 - t 0, b 0 - 0x0], pixelScale 1x1, shallUseOffscreenLayer false, isOffscreenLayerSurface false, attachedSurfaceLayer 0x0, windowHandle 0xd07d0, surfaceHandle 0x0, bounds [ 0 / 0  986 x 880 ], insets [ l 0, r 0 - t 0, b 0 - 0x0], window [0/0 1210x875], pixels[s 1x1 -> 1210x875], visible true, lockedExt false,

       config AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type .awt, connection \Display0, unitID 0, awtDevice Win32GraphicsDevice[screen=0], handle 0x0], idx 0],

       chosen    GLCaps[wgl vid 7 arb: rgba 8/8/8/8, opaque, accum-rgba 16/16/16/16, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL3/GL4.hw], on-scr[.]],

       requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL3/GL4.hw], on-scr[.]],

sun.awt.Win32GraphicsConfig@7356720b[dev=Win32GraphicsDevice[screen=0],pixfmt=7],

       encapsulated WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[obj 0x7bcfb374]], idx 0], pfdID 7, ARB-Choosen true,

       requested GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL3/GL4.hw], on-scr[.]],

       chosen    GLCaps[wgl vid 7 arb: rgba 8/8/8/8, opaque, accum-rgba 16/16/16/16, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL3/GL4.hw], on-scr[.]]]],

       awtComponent com.jogamp.newt.awt.NewtCanvasAWT[canvas0,0,0,1210x875],

       surfaceLock <66338731, 349b35a8>[count 0, qsz 0, owner <NULL>]], ], WindowListeners num 2 [com.jogamp.newt.opengl.GLWindow$2@72fdfaf1, com.jogamp.newt.awt.NewtCanvasAWT$4@68a04db9, ], MouseListeners num 1 [com.metsci.glimpse.event.mouse.newt.MouseWrapperNewt@12505593, ], PointerGestures default true, custom 0 [], KeyListeners num 0 [], windowLock <7f0b1404, 62bc4366>[count 1, qsz 0, owner <AWT-EventQueue-0-Display-.windows_nil-1-EDT-2>], surfaceLockCount 0]] on thread AWT-EventQueue-0-Display-.windows_nil-1-EDT-2

       at jogamp.newt.DefaultEDTUtil.invokeImpl(DefaultEDTUtil.java:248)

       at jogamp.newt.DefaultEDTUtil.invoke(DefaultEDTUtil.java:162)

       at jogamp.newt.DisplayImpl.runOnEDTIfAvail(DisplayImpl.java:426)

       at jogamp.newt.WindowImpl.runOnEDTIfAvail(WindowImpl.java:2125)

       at jogamp.newt.WindowImpl.destroy(WindowImpl.java:1213)

       at com.jogamp.newt.opengl.GLWindow.destroy(GLWindow.java:484)

       at org.RConsortium.inwater.views.utsmapview.view.MapUI.destroy(MapUI.java:97)

       at org.RConsortium.inwater.views.utsmapview.UTSMapView.destroy(UTSMapView.java:80)

       at org.RConsortium.inwater.views.common.gui.UTSFrameView.windowClosing(UTSFrameView.java:218)

       at java.desktop/java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:357)

       at java.desktop/java.awt.Window.processWindowEvent(Window.java:2078)

       at java.desktop/javax.swing.JFrame.processWindowEvent(JFrame.java:298)

       at java.desktop/java.awt.Window.processEvent(Window.java:2037)

       at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)

       at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)

       at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)

       at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)

       at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)

       at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)

       at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)

       at java.base/java.security.AccessController.doPrivileged(Native Method)

       at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)

       at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)

       at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)

       at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)

       at java.base/java.security.AccessController.doPrivileged(Native Method)

       at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)

       at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)

       at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)

       at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)

       at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)

       at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)

       at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)

       at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

 

Mike Hogye

unread,
Feb 27, 2020, 8:11:28 AM2/27/20
to Glimpse
Apologies for the extremely laggy response.

Unfortunately Glimpse 3 is not compatible with Java 11. There is a new major version in the works that will be compatible with Java 11+, but we don't have a public-release date for it yet.
Reply all
Reply to author
Forward
0 new messages