Posted by
SiboVG on
Nov 17, 2023; 12:45am
URL: https://forum.jogamp.org/freeze-on-macos-Sonoma-tp4043021p4043134.html
I'm having the exact same issue.
I really tried to create a working (or well, broken) SSCCE, but couldn't reproduce the bug in the SSCCE; I can only produce it in my program. Anyway, the following file depicts how my program works:
Test3D.java.
------------ Stack (not of the SSCCE, but of my actual program when it freezes) ------------
wait:-1, Object (java.lang)
wait:338, Object (java.lang)
RunOnMainThread:318, OSXUtil (jogamp.nativewindow.macosx)
CreateNSWindow:161, OSXUtil (jogamp.nativewindow.macosx)
lockSurfaceImpl:311, MacOSXJAWTWindow (jogamp.nativewindow.jawt.macosx)
lockSurface:708, JAWTWindow (com.jogamp.nativewindow.awt)
createJAWTDrawableAndContext:724, GLCanvas (com.jogamp.opengl.awt)
addNotify:619, GLCanvas (com.jogamp.opengl.awt)
addNotify:2804, Container (java.awt)
addNotify:4839, JComponent (javax.swing)
addNotify:2804, Container (java.awt)
addNotify:4839, JComponent (javax.swing)
addNotify:2804, Container (java.awt)
addNotify:4839, JComponent (javax.swing)
addNotify:729, JRootPane (javax.swing)
addNotify:2804, Container (java.awt)
addNotify:791, Window (java.awt)
addNotify:495, Frame (java.awt)
show:1053, Window (java.awt)
show:1728, Component (java.awt)
setVisible:1675, Component (java.awt)
setVisible:1036, Window (java.awt)
actionPerformed:693, BasicFrame$19 (net.sf.openrocket.gui.main) <----- This action sets the PhotoFrame visible
fireActionPerformed:1972, AbstractButton (javax.swing)
actionPerformed:2313, AbstractButton$Handler (javax.swing)
fireActionPerformed:405, DefaultButtonModel (javax.swing)
setPressed:262, DefaultButtonModel (javax.swing)
doClick:374, AbstractButton (javax.swing)
actionPerformed:129, ScreenMenuItem (com.apple.laf)
processActionEvent:692, MenuItem (java.awt)
processEvent:651, MenuItem (java.awt)
dispatchEventImpl:379, MenuComponent (java.awt)
dispatchEvent:367, MenuComponent (java.awt)
dispatchEventImpl:776, EventQueue (java.awt)
run:722, EventQueue$4 (java.awt)
run:716, EventQueue$4 (java.awt)
executePrivileged:776, AccessController (java.security)
doPrivileged:399, AccessController (java.security)
doIntersectionPrivilege:86, ProtectionDomain$JavaSecurityAccessImpl (java.security)
doIntersectionPrivilege:97, ProtectionDomain$JavaSecurityAccessImpl (java.security)
run:746, EventQueue$5 (java.awt)
run:744, EventQueue$5 (java.awt)
executePrivileged:776, AccessController (java.security)
doPrivileged:399, AccessController (java.security)
doIntersectionPrivilege:86, ProtectionDomain$JavaSecurityAccessImpl (java.security)
dispatchEvent:743, EventQueue (java.awt)
pumpOneEventForFilters:203, EventDispatchThread (java.awt)
pumpEventsForFilter:124, EventDispatchThread (java.awt)
pumpEventsForHierarchy:113, EventDispatchThread (java.awt)
pumpEvents:109, EventDispatchThread (java.awt)
pumpEvents:101, EventDispatchThread (java.awt)
run:90, EventDispatchThread (java.awt)
------------ Thread dump (not of the SSCCE, but of my application when the freeze happens) ------------
Full thread dump
"AWT-EventQueue-0@1810" prio=6 tid=0x16 nid=NA waiting
java.lang.Thread.State: WAITING
at java.lang.Object.wait(Object.java:-1)
at java.lang.Object.wait(Object.java:338)
at jogamp.nativewindow.macosx.OSXUtil.RunOnMainThread(OSXUtil.java:318)
at jogamp.nativewindow.macosx.OSXUtil.CreateNSWindow(OSXUtil.java:161)
at jogamp.nativewindow.jawt.macosx.MacOSXJAWTWindow.lockSurfaceImpl(MacOSXJAWTWindow.java:311)
at com.jogamp.nativewindow.awt.JAWTWindow.lockSurface(JAWTWindow.java:708)
at com.jogamp.opengl.awt.GLCanvas.createJAWTDrawableAndContext(GLCanvas.java:724)
at com.jogamp.opengl.awt.GLCanvas.addNotify(GLCanvas.java:619)
at java.awt.Container.addNotify(Container.java:2804)
- locked <0x205b> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.addNotify(JComponent.java:4839)
at java.awt.Container.addNotify(Container.java:2804)
at javax.swing.JComponent.addNotify(JComponent.java:4839)
at java.awt.Container.addNotify(Container.java:2804)
at javax.swing.JComponent.addNotify(JComponent.java:4839)
at javax.swing.JRootPane.addNotify(JRootPane.java:729)
at java.awt.Container.addNotify(Container.java:2804)
at java.awt.Window.addNotify(Window.java:791)
at java.awt.Frame.addNotify(Frame.java:495)
at java.awt.Window.show(Window.java:1053)
at java.awt.Component.show(Component.java:1728)
at java.awt.Component.setVisible(Component.java:1675)
at java.awt.Window.setVisible(Window.java:1036)
at net.sf.openrocket.gui.main.BasicFrame$19.actionPerformed(BasicFrame.java:693)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at javax.swing.AbstractButton.doClick(AbstractButton.java:374)
at com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:129)
at java.awt.MenuItem.processActionEvent(MenuItem.java:692)
at java.awt.MenuItem.processEvent(MenuItem.java:651)
at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:379)
at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:367)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
at java.awt.EventQueue$4.run(EventQueue.java:722)
at java.awt.EventQueue$4.run(EventQueue.java:716)
at java.security.AccessController.executePrivileged(AccessController.java:776)
at java.security.AccessController.doPrivileged(AccessController.java:399)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.awt.EventQueue$5.run(EventQueue.java:746)
at java.awt.EventQueue$5.run(EventQueue.java:744)
at java.security.AccessController.executePrivileged(AccessController.java:776)
at java.security.AccessController.doPrivileged(AccessController.java:399)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:743)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
"TimerQueue@6960" daemon prio=5 tid=0x20 nid=NA waiting
java.lang.Thread.State: WAITING
at jdk.internal.misc.Unsafe.park(Unsafe.java:-1)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
at java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3463)
at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1623)
at java.util.concurrent.DelayQueue.take(DelayQueue.java:217)
at javax.swing.TimerQueue.run(TimerQueue.java:172)
at java.lang.Thread.run(Thread.java:833)
"AppKit Thread@1357" daemon prio=5 tid=0x11 nid=NA runnable
java.lang.Thread.State: RUNNABLE
at sun.lwawt.macosx.LWCToolkit.doAWTRunLoopImpl(LWCToolkit.java:-1)
at sun.lwawt.macosx.LWCToolkit.doAWTRunLoop(LWCToolkit.java:931)
at sun.lwawt.macosx.LWCToolkit.invokeAndWait(LWCToolkit.java:733)
at sun.lwawt.macosx.LWCToolkit.invokeAndWait(LWCToolkit.java:678)
at sun.lwawt.macosx.CAccessibility.invokeAndWait(CAccessibility.java:121)
at sun.lwawt.macosx.CAccessibility.getFocusOwner(CAccessibility.java:619)
"Common-Cleaner@8245" daemon prio=8 tid=0xc nid=NA waiting
java.lang.Thread.State: WAITING
at java.lang.Object.wait(Object.java:-1)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
at jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:140)
at java.lang.Thread.run(Thread.java:833)
at jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:162)
"Java2D Queue Flusher@1565" daemon prio=10 tid=0x14 nid=NA waiting
java.lang.Thread.State: WAITING
at java.lang.Object.wait(Object.java:-1)
at sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run(OGLRenderQueue.java:206)
at java.lang.Thread.run(Thread.java:833)
"Reference Handler@8242" daemon prio=10 tid=0x2 nid=NA runnable
java.lang.Thread.State: RUNNABLE
at java.lang.ref.Reference.waitForReferencePendingList(Reference.java:-1)
at java.lang.ref.Reference.processPendingReferences(Reference.java:253)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:215)
"Finalizer@8243" daemon prio=8 tid=0x3 nid=NA waiting
java.lang.Thread.State: WAITING
at java.lang.Object.wait(Object.java:-1)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:172)
"AWT-Shutdown@1360" prio=5 tid=0x12 nid=NA waiting
java.lang.Thread.State: WAITING
at java.lang.Object.wait(Object.java:-1)
at java.lang.Object.wait(Object.java:338)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:291)
at java.lang.Thread.run(Thread.java:833)
"Java2D Disposer@1727" daemon prio=10 tid=0x15 nid=NA waiting
java.lang.Thread.State: WAITING
at java.lang.Object.wait(Object.java:-1)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
at sun.java2d.Disposer.run(Disposer.java:145)
at java.lang.Thread.run(Thread.java:833)
"Timer-0@2420" daemon prio=6 tid=0x18 nid=NA waiting
java.lang.Thread.State: WAITING
at java.lang.Object.wait(Object.java:-1)
at java.util.TimerThread.mainLoop(Timer.java:563)
at java.util.TimerThread.run(Timer.java:516)
"doubleClickTimer@7834" prio=6 tid=0x24 nid=NA waiting
java.lang.Thread.State: WAITING
at java.lang.Object.wait(Object.java:-1)
at java.lang.Object.wait(Object.java:338)
at java.util.TimerThread.mainLoop(Timer.java:537)
at java.util.TimerThread.run(Timer.java:516)
"doubleClickTimer@7925" prio=6 tid=0x25 nid=NA waiting
java.lang.Thread.State: WAITING
at java.lang.Object.wait(Object.java:-1)
at java.lang.Object.wait(Object.java:338)
at java.util.TimerThread.mainLoop(Timer.java:537)
at java.util.TimerThread.run(Timer.java:516)
"Signal Dispatcher@8244" daemon prio=9 tid=0x4 nid=NA runnable
java.lang.Thread.State: RUNNABLE
"Notification Thread@662" daemon prio=9 tid=0x10 nid=NA runnable
java.lang.Thread.State: RUNNABLE
"DestroyJavaVM@8076" prio=5 tid=0x26 nid=NA runnable
java.lang.Thread.State: RUNNABLE
------------ JoglVersion.getInstance().toString(gl) (ran in the SSCCE) ------------
Package: com.jogamp.opengl
Extension Name: com.jogamp.opengl
Specification Title: Java Bindings for OpenGL API Specification
Specification Vendor: JogAmp Community
Specification Version: 2.5
Implementation Title: Java Bindings for OpenGL Runtime Environment
Implementation Vendor: JogAmp Community
Implementation Vendor ID: com.jogamp
Implementation URL:
http://jogamp.org/Implementation Version: 2.5.0
Implementation Build: 2.5-b1533-20230818
Implementation Branch: origin/master
Implementation Commit: 70f62ca5d121e5e71548246d468b5e7baa5faf25
Implementation SHA Sources: null
Implementation SHA Classes: null
Implementation SHA Classes-this: null
Implementation SHA Natives: null
Implementation SHA Natives-this: null
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
MacOSXGraphicsDevice[type .macosx, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[obj 0x55979826]]:
Natives
GL4bc false
GL4 true [4.1 (Core profile, arb, compat[ES2, ES3], FBO, hardware)]
GLES3 false
GL3bc false
GL3 true [4.1 (Core profile, arb, compat[ES2, ES3], FBO, hardware)]
GL2 true [2.1 (Compat profile, arb, compat[], FBO, hardware)]
GLES2 false
GLES1 false
Count 3 / 8
Common
GL4ES3 true
GL2GL3 true
GL2ES2 true
GL2ES1 true
Mappings
GL2ES1 GLProfile[GL2ES1/GL2.hw]
GL4ES3 GLProfile[GL4ES3/GL4.hw]
GL2ES2 GLProfile[GL2ES2/GL4.hw]
GL2 GLProfile[GL2/GL2.hw]
GL4 GLProfile[GL4/GL4.hw]
GL3 GLProfile[GL3/GL4.hw]
GL2GL3 GLProfile[GL2GL3/GL4.hw]
default GLProfile[GL2/GL2.hw]
Count 7 / 12
Swap Interval 0
GL Profile GLProfile[GL2/GL2.hw]
GL Version 2.1 (Compat profile, arb, compat[], FBO, hardware) - 2.1 Metal - 86 [GL 2.1.0, vendor 0.0.0 (n/a)]
Quirks [NoOffscreenBitmap, GL4NeedsGL3Request, NeedSharedObjectSync]
Impl. class jogamp.opengl.gl4.GL4bcImpl
GL_VENDOR Apple
GL_RENDERER Apple M1 Pro
GL_VERSION 2.1 Metal - 86
GLSL true, has-compiler-func: true, version: 1.20 / 1.20.0
GL FBO: basic true, full true
GL_EXTENSIONS 133
GLX_EXTENSIONS 0<quote author="vs3d">