No, at the moment I have no extra threads in project (next to the jme defaults). That’s the output in jme 3.0. Seems like the Thread-0 is missing (output is right before closing the project):
Thread[Java2D Disposer,10,system]=[Ljava.lang.StackTraceElement;@7591d762 is daemon = true
java.lang.Object.wait(Native Method)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
sun.java2d.Disposer.run(Disposer.java:145)
java.lang.Thread.run(Thread.java:744)
Thread[Thread-4,5,main]=[Ljava.lang.StackTraceElement;@39d39f3b is daemon = true
java.lang.Object.wait(Native Method)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
com.jme3.util.BufferUtils$ClearReferences.run(BufferUtils.java:1372)
Thread[DestroyJavaVM,5,main]=[Ljava.lang.StackTraceElement;@747af825 is daemon = false
Thread[D3D Screen Updater,7,system]=[Ljava.lang.StackTraceElement;@353980e1 is daemon = true
java.lang.Object.wait(Native Method)
sun.java2d.d3d.D3DScreenUpdateManager.run(D3DScreenUpdateManager.java:436)
java.lang.Thread.run(Thread.java:744)
Thread[Attach Listener,5,system]=[Ljava.lang.StackTraceElement;@523c4f13 is daemon = true
Thread[jME3 Audio Thread,6,main]=[Ljava.lang.StackTraceElement;@756b9292 is daemon = true
java.lang.Thread.sleep(Native Method)
com.jme3.audio.lwjgl.LwjglAudioRenderer.run(LwjglAudioRenderer.java:124)
java.lang.Thread.run(Thread.java:744)
Thread[Signal Dispatcher,9,system]=[Ljava.lang.StackTraceElement;@6963eb77 is daemon = true
Thread[Reference Handler,10,system]=[Ljava.lang.StackTraceElement;@1ef807af is daemon = true
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:503)
java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
Thread[TimerQueue,5,system]=[Ljava.lang.StackTraceElement;@2dc0820b is daemon = true
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
java.util.concurrent.DelayQueue.take(DelayQueue.java:209)
javax.swing.TimerQueue.run(TimerQueue.java:171)
java.lang.Thread.run(Thread.java:744)
Thread[AWT-Windows,6,main]=[Ljava.lang.StackTraceElement;@3999b7a4 is daemon = true
sun.awt.windows.WToolkit.eventLoop(Native Method)
sun.awt.windows.WToolkit.run(WToolkit.java:299)
java.lang.Thread.run(Thread.java:744)
Thread[LWJGL Renderer Thread,5,main]=[Ljava.lang.StackTraceElement;@1ae78d87 is daemon = false
java.lang.Thread.dumpThreads(Native Method)
java.lang.Thread.getAllStackTraces(Thread.java:1639)
Main.GameManager.getThread2(GameManager.java:95)
Main.GameManager.quit(GameManager.java:90)
GUI._ESC._POPUP.PopupExit.internalMethod(PopupExit.java:51)
GUI._ESC.ESCPopupController.popupControl(ESCPopupController.java:63)
GUI._ESC.ESCMainScreenController.windowControl(ESCMainScreenController.java:88)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:606)
de.lessvoid.nifty.NiftyMethodInvoker.callMethod(NiftyMethodInvoker.java:145)
de.lessvoid.nifty.NiftyMethodInvoker.performInvoke(NiftyMethodInvoker.java:91)
de.lessvoid.nifty.Nifty$DelayedMethodInvoke.perform(Nifty.java:1174)
de.lessvoid.nifty.Nifty.invokeMethods(Nifty.java:1152)
de.lessvoid.nifty.Nifty.handleDynamicElements(Nifty.java:354)
de.lessvoid.nifty.Nifty.access$1700(Nifty.java:77)
de.lessvoid.nifty.Nifty$NiftyInputConsumerImpl.processEvent(Nifty.java:1374)
de.lessvoid.nifty.Nifty$NiftyInputConsumerImpl.processMouseEvent(Nifty.java:1329)
com.jme3.niftygui.InputSystemJme.handleMouseEvent(InputSystemJme.java:124)
com.jme3.niftygui.InputSystemJme.onMouseButtonEventQueued(InputSystemJme.java:232)
com.jme3.niftygui.InputSystemJme.forwardEvents(InputSystemJme.java:296)
de.lessvoid.nifty.Nifty.update(Nifty.java:288)
com.jme3.niftygui.InputSystemJme.endInput(InputSystemJme.java:113)
com.jme3.input.InputManager.processQueue(InputManager.java:819)
com.jme3.input.InputManager.update(InputManager.java:883)
com.jme3.app.Application.update(Application.java:604)
com.jme3.app.SimpleApplication.update(SimpleApplication.java:231)
com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:151)
com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:185)
com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:228)
java.lang.Thread.run(Thread.java:744)
Thread[Finalizer,8,system]=[Ljava.lang.StackTraceElement;@57fca7dd is daemon = true
java.lang.Object.wait(Native Method)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:189)