OK, I have worked around my swing and main thread issue.
I am now hitting where jme just never starts. I loaded up a small test app and tried to run it, jme just hangs somewhere in the start. There are no error messages.
Here is a dump using my new favorite CTRL+BREAK
On test app
trevor@Trevors-Mac client_dist % ../jvm/Contents/Home/bin/java -XstartOnFirstThread -jar OutsideClient.jar pbr-test
File context at: /Users/trevor/Desktop/Outside.app/Contents/client_dist/.
[2020-07-31 13:44:56] [INFO ] Running on MacOS
WARNING: GL pipe is running in software mode (Renderer ID=0x1020400)
[2020-07-31 13:44:57] [FINE ] Entering outside on thread main
[2020-07-31 13:44:57] [INFO ] Running on jMonkeyEngine 3.4.0-SNAPSHOT
* Branch: master
* Git Hash: 72b751c
* Build Date: 2020-07-24
Unable to create basic Accelerated OpenGL renderer.
Unable to create basic Accelerated OpenGL renderer.
Core Image is now using the software OpenGL renderer. This will be slow.
^\2020-07-31 13:45:15
Full thread dump OpenJDK 64-Bit Server VM (11.0.8+10 mixed mode):
Threads class SMR info:
_java_thread_list=0x00007fae715a5ac0, length=11, elements={
0x00007fae72809000, 0x00007fae72086000, 0x00007fae72009000, 0x00007fae7301f000,
0x00007fae73012000, 0x00007fae7302e000, 0x00007fae7302f000, 0x00007fae72088000,
0x00007fae7306e000, 0x00007fae725e5800, 0x00007fae729e7800
}
"main" #1 prio=5 os_prio=31 cpu=1390.55ms elapsed=19.70s tid=0x00007fae72809000 nid=0x307 runnable [0x00007ffeeb8c0000]
java.lang.Thread.State: RUNNABLE
at org.lwjgl.system.JNI.invokeI(Native Method)
at org.lwjgl.glfw.GLFW.glfwInit(GLFW.java:830)
at com.jme3.system.lwjgl.LwjglWindow.createContext(LwjglWindow.java:197)
at com.jme3.system.lwjgl.LwjglWindow.initInThread(LwjglWindow.java:501)
at com.jme3.system.lwjgl.LwjglWindow.run(LwjglWindow.java:632)
at com.jme3.system.lwjgl.LwjglWindow.create(LwjglWindow.java:473)
at com.jme3.app.LegacyApplication.start(LegacyApplication.java:481)
at com.jme3.app.LegacyApplication.start(LegacyApplication.java:441)
at com.jme3.app.SimpleApplication.start(SimpleApplication.java:128)
at io.tlf.outside.client.test.TestPBRLighting.main(TestPBRLighting.java:38)
at io.tlf.outside.client.Main.main(Main.java:87)
"Reference Handler" #2 daemon prio=10 os_prio=31 cpu=1.02ms elapsed=19.60s tid=0x00007fae72086000 nid=0x4703 waiting on condition [0x0000700003f82000]
java.lang.Thread.State: RUNNABLE
at java.lang.ref.Reference.waitForReferencePendingList(java.base@11.0.8/Native Method)
at java.lang.ref.Reference.processPendingReferences(java.base@11.0.8/Unknown Source)
at java.lang.ref.Reference$ReferenceHandler.run(java.base@11.0.8/Unknown Source)
"Finalizer" #3 daemon prio=8 os_prio=31 cpu=1.00ms elapsed=19.60s tid=0x00007fae72009000 nid=0x3503 in Object.wait() [0x0000700004085000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.8/Native Method)
- waiting on <0x0000000787105930> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@11.0.8/Unknown Source)
- waiting to re-lock in wait() <0x0000000787105930> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@11.0.8/Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(java.base@11.0.8/Unknown Source)
"Signal Dispatcher" #4 daemon prio=9 os_prio=31 cpu=0.69ms elapsed=19.58s tid=0x00007fae7301f000 nid=0x3d03 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" #5 daemon prio=9 os_prio=31 cpu=546.21ms elapsed=19.57s tid=0x00007fae73012000 nid=0x3e03 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
No compile task
"C1 CompilerThread0" #7 daemon prio=9 os_prio=31 cpu=418.36ms elapsed=19.57s tid=0x00007fae7302e000 nid=0xa803 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
No compile task
"Sweeper thread" #8 daemon prio=9 os_prio=31 cpu=27.56ms elapsed=19.57s tid=0x00007fae7302f000 nid=0x5803 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Service Thread" #9 daemon prio=9 os_prio=31 cpu=0.16ms elapsed=19.54s tid=0x00007fae72088000 nid=0xa603 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Common-Cleaner" #10 daemon prio=8 os_prio=31 cpu=3.41ms elapsed=19.53s tid=0x00007fae7306e000 nid=0x5b03 in Object.wait() [0x00007000048a0000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.8/Native Method)
- waiting on <0x00000007871063f8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@11.0.8/Unknown Source)
- waiting to re-lock in wait() <0x00000007871063f8> (a java.lang.ref.ReferenceQueue$Lock)
at jdk.internal.ref.CleanerImpl.run(java.base@11.0.8/Unknown Source)
at java.lang.Thread.run(java.base@11.0.8/Unknown Source)
at jdk.internal.misc.InnocuousThread.run(java.base@11.0.8/Unknown Source)
"Java2D Disposer" #13 daemon prio=10 os_prio=31 cpu=0.51ms elapsed=18.70s tid=0x00007fae725e5800 nid=0x9803 in Object.wait() [0x0000700004cac000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.8/Native Method)
- waiting on <0x0000000787654898> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@11.0.8/Unknown Source)
- waiting to re-lock in wait() <0x0000000787654898> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@11.0.8/Unknown Source)
at sun.java2d.Disposer.run(java.desktop@11.0.8/Unknown Source)
at java.lang.Thread.run(java.base@11.0.8/Unknown Source)
"Java2D Queue Flusher" #14 daemon prio=10 os_prio=31 cpu=32.67ms elapsed=18.66s tid=0x00007fae729e7800 nid=0x680b in Object.wait() [0x0000700004daf000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.8/Native Method)
- waiting on <0x000000078769f3c0> (a sun.java2d.opengl.OGLRenderQueue$QueueFlusher)
at sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run(java.desktop@11.0.8/Unknown Source)
- waiting to re-lock in wait() <0x000000078769f3c0> (a sun.java2d.opengl.OGLRenderQueue$QueueFlusher)
at java.lang.Thread.run(java.base@11.0.8/Unknown Source)
"VM Thread" os_prio=31 cpu=30.32ms elapsed=19.61s tid=0x00007fae7285e800 nid=0x4903 runnable
"GC Thread#0" os_prio=31 cpu=24.68ms elapsed=19.67s tid=0x00007fae72818800 nid=0x2b03 runnable
"GC Thread#1" os_prio=31 cpu=24.59ms elapsed=19.04s tid=0x00007fae7186f000 nid=0x5d03 runnable
"GC Thread#2" os_prio=31 cpu=24.05ms elapsed=19.04s tid=0x00007fae71874000 nid=0x9f03 runnable
"G1 Main Marker" os_prio=31 cpu=3.26ms elapsed=19.67s tid=0x00007fae7202c800 nid=0x5003 runnable
"G1 Conc#0" os_prio=31 cpu=0.30ms elapsed=19.67s tid=0x00007fae7202d800 nid=0x2e03 runnable
"G1 Refine#0" os_prio=31 cpu=3.18ms elapsed=19.65s tid=0x00007fae7207e000 nid=0x4e03 runnable
"G1 Young RemSet Sampling" os_prio=31 cpu=10.31ms elapsed=19.65s tid=0x00007fae73008800 nid=0x4c03 runnable
"VM Periodic Task Thread" os_prio=31 cpu=43.32ms elapsed=19.54s tid=0x00007fae72800800 nid=0xa403 waiting on condition
JNI global refs: 72, weak refs: 8
Heap
garbage-first heap total 131072K, used 22995K [0x0000000780000000, 0x0000000800000000)
region size 1024K, 20 young (20480K), 2 survivors (2048K)
Metaspace used 17131K, capacity 17575K, committed 17920K, reserved 1064960K
class space used 1793K, capacity 1956K, committed 2048K, reserved 1048576K
On my main app
Full thread dump OpenJDK 64-Bit Server VM (11.0.8+10 mixed mode):
Threads class SMR info:
_java_thread_list=0x00007fa7567f9240, length=12, elements={
0x00007fa754010000, 0x00007fa75402f800, 0x00007fa754032800, 0x00007fa753848800,
0x00007fa753849800, 0x00007fa754842000, 0x00007fa755869800, 0x00007fa75403c000,
0x00007fa754037000, 0x00007fa753c5c000, 0x00007fa7559c3800, 0x00007fa755c0e800
}
"main" #1 prio=5 os_prio=31 cpu=1580.69ms elapsed=22.20s tid=0x00007fa754010000 nid=0x307 runnable [0x00007ffee359c000]
java.lang.Thread.State: RUNNABLE
at org.lwjgl.system.JNI.invokeI(Native Method)
at org.lwjgl.glfw.GLFW.glfwInit(GLFW.java:830)
at com.jme3.system.lwjgl.LwjglWindow.createContext(LwjglWindow.java:197)
at com.jme3.system.lwjgl.LwjglWindow.initInThread(LwjglWindow.java:501)
at com.jme3.system.lwjgl.LwjglWindow.run(LwjglWindow.java:632)
at com.jme3.system.lwjgl.LwjglWindow.create(LwjglWindow.java:473)
at com.jme3.app.LegacyApplication.start(LegacyApplication.java:481)
at com.jme3.app.LegacyApplication.start(LegacyApplication.java:441)
at com.jme3.app.SimpleApplication.start(SimpleApplication.java:128)
at io.tlf.outside.client.Client.load(Client.java:72)
at io.tlf.outside.client.Main.internalLaunch(Main.java:205)
at io.tlf.outside.client.Main.main(Main.java:84)
"Reference Handler" #2 daemon prio=10 os_prio=31 cpu=2.74ms elapsed=22.18s tid=0x00007fa75402f800 nid=0x3503 waiting on condition [0x00007000065c4000]
java.lang.Thread.State: RUNNABLE
at java.lang.ref.Reference.waitForReferencePendingList(java.base@11.0.8/Native Method)
at java.lang.ref.Reference.processPendingReferences(java.base@11.0.8/Unknown Source)
at java.lang.ref.Reference$ReferenceHandler.run(java.base@11.0.8/Unknown Source)
"Finalizer" #3 daemon prio=8 os_prio=31 cpu=4.05ms elapsed=22.18s tid=0x00007fa754032800 nid=0x3703 in Object.wait() [0x00007000066c7000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.8/Native Method)
- waiting on <0x000000078047bc50> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@11.0.8/Unknown Source)
- waiting to re-lock in wait() <0x000000078047bc50> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@11.0.8/Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(java.base@11.0.8/Unknown Source)
"Signal Dispatcher" #4 daemon prio=9 os_prio=31 cpu=0.39ms elapsed=22.16s tid=0x00007fa753848800 nid=0x3f03 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" #5 daemon prio=9 os_prio=31 cpu=8207.74ms elapsed=22.16s tid=0x00007fa753849800 nid=0x3d03 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
No compile task
"C1 CompilerThread0" #7 daemon prio=9 os_prio=31 cpu=3731.25ms elapsed=22.16s tid=0x00007fa754842000 nid=0x5603 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
No compile task
"Sweeper thread" #8 daemon prio=9 os_prio=31 cpu=61.92ms elapsed=22.16s tid=0x00007fa755869800 nid=0xa603 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Service Thread" #9 daemon prio=9 os_prio=31 cpu=0.07ms elapsed=22.11s tid=0x00007fa75403c000 nid=0x5803 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Common-Cleaner" #10 daemon prio=8 os_prio=31 cpu=4.05ms elapsed=22.10s tid=0x00007fa754037000 nid=0xa203 in Object.wait() [0x0000700006ee2000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.8/Native Method)
- waiting on <0x000000078047a550> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@11.0.8/Unknown Source)
- waiting to re-lock in wait() <0x000000078047a550> (a java.lang.ref.ReferenceQueue$Lock)
at jdk.internal.ref.CleanerImpl.run(java.base@11.0.8/Unknown Source)
at java.lang.Thread.run(java.base@11.0.8/Unknown Source)
at jdk.internal.misc.InnocuousThread.run(java.base@11.0.8/Unknown Source)
"Java2D Disposer" #13 daemon prio=10 os_prio=31 cpu=1.11ms elapsed=20.98s tid=0x00007fa753c5c000 nid=0x6703 in Object.wait() [0x00007000072ee000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.8/Native Method)
- waiting on <0x000000078047c130> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@11.0.8/Unknown Source)
- waiting to re-lock in wait() <0x000000078047c130> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(java.base@11.0.8/Unknown Source)
at sun.java2d.Disposer.run(java.desktop@11.0.8/Unknown Source)
at java.lang.Thread.run(java.base@11.0.8/Unknown Source)
"Java2D Queue Flusher" #14 daemon prio=10 os_prio=31 cpu=17.09ms elapsed=20.91s tid=0x00007fa7559c3800 nid=0x990f in Object.wait() [0x00007000073f1000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(java.base@11.0.8/Native Method)
- waiting on <0x000000078047a8c0> (a sun.java2d.opengl.OGLRenderQueue$QueueFlusher)
at sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run(java.desktop@11.0.8/Unknown Source)
- waiting to re-lock in wait() <0x000000078047a8c0> (a sun.java2d.opengl.OGLRenderQueue$QueueFlusher)
at java.lang.Thread.run(java.base@11.0.8/Unknown Source)
"outside-client" #15 prio=5 os_prio=31 cpu=9188.67ms elapsed=20.58s tid=0x00007fa755c0e800 nid=0x15403 waiting on condition [0x00007000074f4000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(java.base@11.0.8/Native Method)
at io.tlf.outside.world.JmeWorld.load(JmeWorld.java:118)
at io.tlf.outside.client.Client.buildClient(Client.java:148)
at io.tlf.outside.client.Client$1.run(Client.java:63)
"VM Thread" os_prio=31 cpu=45.72ms elapsed=22.18s tid=0x00007fa753841000 nid=0x3303 runnable
"GC Thread#0" os_prio=31 cpu=252.93ms elapsed=22.20s tid=0x00007fa753815800 nid=0x5303 runnable
"GC Thread#1" os_prio=31 cpu=262.96ms elapsed=21.58s tid=0x00007fa754351800 nid=0x9e03 runnable
"GC Thread#2" os_prio=31 cpu=258.30ms elapsed=21.58s tid=0x00007fa754074000 nid=0x9d03 runnable
"GC Thread#3" os_prio=31 cpu=242.57ms elapsed=19.38s tid=0x00007fa753d49000 nid=0x12203 runnable
"G1 Main Marker" os_prio=31 cpu=0.93ms elapsed=22.20s tid=0x00007fa755828800 nid=0x5103 runnable
"G1 Conc#0" os_prio=31 cpu=13.06ms elapsed=22.20s tid=0x00007fa754810000 nid=0x2e03 runnable
"G1 Refine#0" os_prio=31 cpu=58.68ms elapsed=22.20s tid=0x00007fa75482b000 nid=0x4e03 runnable
"G1 Young RemSet Sampling" os_prio=31 cpu=5.94ms elapsed=22.20s tid=0x00007fa754011000 nid=0x3003 runnable
"VM Periodic Task Thread" os_prio=31 cpu=12.99ms elapsed=22.11s tid=0x00007fa754036000 nid=0x5a03 waiting on condition
JNI global refs: 72, weak refs: 2
Heap
garbage-first heap total 285696K, used 84307K [0x0000000780000000, 0x0000000800000000)
region size 1024K, 49 young (50176K), 12 survivors (12288K)
Metaspace used 34436K, capacity 35722K, committed 35888K, reserved 1081344K
class space used 3817K, capacity 4213K, committed 4224K, reserved 1048576K```
EDIT 2: Edited to have better dumps.
It looks like org.lwjgl.glfw.GLFW.glfwInit(GLFW.java:830) is never completing.