gurkenlabs / litiengine

LITIENGINE 🕹 The pure 2D java game engine.
https://litiengine.com/
MIT License
718 stars 94 forks source link

Deadlock in TriggerTests #764

Closed Gamebuster19901 closed 1 year ago

Gamebuster19901 commented 1 year ago

Describe the bug A deadlock has occurred in TriggerTests

Thread Dump The error message you get either in your console or the crash.txt located in your program's root directory.


2022-12-11 23:34:37
Full thread dump OpenJDK 64-Bit Server VM (19.0.1+10-Ubuntu-1ubuntu122.04 mixed mode, sharing):

Threads class SMR info:
_java_thread_list=0x00007f62f80c3430, length=21, elements={
0x00007f6360018b70, 0x00007f636027a380, 0x00007f636027b740, 0x00007f636027cd70,
0x00007f636027e1f0, 0x00007f636027f660, 0x00007f63602810f0, 0x00007f636028a670,
0x00007f636028bb40, 0x00007f6360299140, 0x00007f636046dba0, 0x00007f636087ff90,
0x00007f6360896ee0, 0x00007f6360897690, 0x00007f6314001000, 0x00007f6360e5b6b0,
0x00007f6360e5cbd0, 0x00007f62942ae930, 0x00007f62a8019640, 0x00007f629c0c4070,
0x00007f629c0b2840
}

"Test worker" #1 [35553] prio=5 os_prio=0 cpu=3232.03ms elapsed=6096.90s tid=0x00007f6360018b70 nid=35553 waiting for monitor entry  [0x00007f63646e8000]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at java.awt.Window.addToWindowList(java.desktop@19.0.1/Window.java:2865)
        - waiting to lock <0x00000000e1139ea8> (a java.lang.Class for java.awt.Window)
        at java.awt.Window.init(java.desktop@19.0.1/Window.java:506)
        at java.awt.Window.<init>(java.desktop@19.0.1/Window.java:554)
        at java.awt.Frame.<init>(java.desktop@19.0.1/Frame.java:428)
        at java.awt.Frame.<init>(java.desktop@19.0.1/Frame.java:393)
        at javax.swing.JFrame.<init>(java.desktop@19.0.1/JFrame.java:180)
        at de.gurkenlabs.litiengine.GameWindow.<init>(GameWindow.java:61)
        at de.gurkenlabs.litiengine.Game.init(Game.java:471)
        - locked <0x00000000e1172e30> (a java.lang.Class for de.gurkenlabs.litiengine.Game)
        at de.gurkenlabs.litiengine.entities.TriggerTests.initGame(TriggerTests.java:39)
        at java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.base@19.0.1/DirectMethodHandle$Holder)
        at java.lang.invoke.LambdaForm$MH/0x000000080140c800.invoke(java.base@19.0.1/LambdaForm$MH)
        at java.lang.invoke.Invokers$Holder.invokeExact_MT(java.base@19.0.1/Invokers$Holder)
        at jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.base@19.0.1/DirectMethodHandleAccessor.java:154)
        at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.base@19.0.1/DirectMethodHandleAccessor.java:104)
        at java.lang.reflect.Method.invoke(java.base@19.0.1/Method.java:578)
        at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
        at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
        at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
        at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
        at org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:128)
        at org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeAllMethod(TimeoutExtension.java:70)
        at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$$Lambda$733/0x0000000801403d60.apply(Unknown Source)
        at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
        at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall$$Lambda$215/0x000000080114d928.apply(Unknown Source)
        at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
        at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$$Lambda$370/0x0000000801170280.apply(Unknown Source)
        at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
        at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
        at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
        at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
        at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
        at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
        at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeBeforeAllMethods$13(ClassBasedTestDescriptor.java:411)
        at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$$Lambda$732/0x0000000801403b50.execute(Unknown Source)
        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
        at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeBeforeAllMethods(ClassBasedTestDescriptor.java:409)
        at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.before(ClassBasedTestDescriptor.java:215)
        at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.before(ClassBasedTestDescriptor.java:84)
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:148)
        at org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$303/0x0000000801161908.execute(Unknown Source)
        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
        at org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$302/0x00000008011616f8.invoke(Unknown Source)
        at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
        at org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$301/0x0000000801161300.execute(Unknown Source)
        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
        at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService$$Lambda$307/0x00000008011623a8.accept(Unknown Source)
        at java.util.ArrayList.forEach(java.base@19.0.1/Unknown Source)
        at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
        at org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$303/0x0000000801161908.execute(Unknown Source)
        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
        at org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$302/0x00000008011616f8.invoke(Unknown Source)
        at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
        at org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$301/0x0000000801161300.execute(Unknown Source)
        at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
        at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
        at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
        at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
        at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
        at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
        at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
        at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
        at org.junit.platform.launcher.core.EngineExecutionOrchestrator$$Lambda$257/0x00000008011172a0.accept(Unknown Source)
        at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
        at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
        at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
        at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
        at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
        at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53)
        at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99)
        at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79)
        at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75)
        at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61)
        at java.lang.invoke.LambdaForm$DMH/0x00000008010a8000.invokeInterface(java.base@19.0.1/LambdaForm$DMH)
        at java.lang.invoke.LambdaForm$MH/0x00000008010a8800.invoke(java.base@19.0.1/LambdaForm$MH)
        at java.lang.invoke.Invokers$Holder.invokeExact_MT(java.base@19.0.1/Invokers$Holder)
        at jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.base@19.0.1/DirectMethodHandleAccessor.java:154)
        at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.base@19.0.1/DirectMethodHandleAccessor.java:104)
        at java.lang.reflect.Method.invoke(java.base@19.0.1/Method.java:578)
        at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
        at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
        at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
        at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
        at jdk.proxy2.$Proxy5.stop(jdk.proxy2/Unknown Source)
        at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
        at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
        at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
        at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
        at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
        at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133)
        at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71)
        at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
        at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)

   Locked ownable synchronizers:
        - None

"Reference Handler" #8 [35560] daemon prio=10 os_prio=0 cpu=2.75ms elapsed=6096.89s tid=0x00007f636027a380 nid=35560 waiting on condition  [0x00007f6336921000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@19.0.1/Native Method)
        - parking to wait for  <0x00000000e0fa28f0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(java.base@19.0.1/LockSupport.java:221)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@19.0.1/AbstractQueuedSynchronizer.java:715)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@19.0.1/AbstractQueuedSynchronizer.java:938)
        at java.util.concurrent.locks.ReentrantLock$Sync.lock(java.base@19.0.1/ReentrantLock.java:153)
        at java.util.concurrent.locks.ReentrantLock.lock(java.base@19.0.1/ReentrantLock.java:322)
        at java.lang.ref.ReferenceQueue.poll(java.base@19.0.1/ReferenceQueue.java:182)
        at org.mockito.internal.util.concurrent.WeakConcurrentMap.expungeStaleEntries(WeakConcurrentMap.java:138)
        at org.mockito.internal.util.concurrent.WeakConcurrentMap$WithInlinedExpunction.containsKey(WeakConcurrentMap.java:272)
        at org.mockito.internal.creation.bytebuddy.MockMethodAdvice.isMock(MockMethodAdvice.java:170)
        at org.mockito.internal.creation.bytebuddy.MockMethodAdvice.isMocked(MockMethodAdvice.java:175)
        at java.lang.Thread.isVirtual(java.base@19.0.1/Thread.java:1518)
        at java.util.concurrent.locks.LockSupport.park(java.base@19.0.1/LockSupport.java:218)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@19.0.1/AbstractQueuedSynchronizer.java:715)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@19.0.1/AbstractQueuedSynchronizer.java:938)
        at java.util.concurrent.locks.ReentrantLock$Sync.lock(java.base@19.0.1/ReentrantLock.java:153)
        at java.util.concurrent.locks.ReentrantLock.lock(java.base@19.0.1/ReentrantLock.java:322)
        at java.lang.ref.ReferenceQueue.enqueue(java.base@19.0.1/ReferenceQueue.java:163)
        at java.lang.ref.Reference.enqueueFromPending(java.base@19.0.1/Reference.java:234)
        at java.lang.ref.Reference.processPendingReferences(java.base@19.0.1/Reference.java:265)
        at java.lang.ref.Reference$ReferenceHandler.run(java.base@19.0.1/Reference.java:207)

   Locked ownable synchronizers:
        - None

"Finalizer" #9 [35561] daemon prio=8 os_prio=0 cpu=0.28ms elapsed=6096.89s tid=0x00007f636027b740 nid=35561 in Object.wait()  [0x00007f6336821000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait0(java.base@19.0.1/Native Method)
        - waiting on <0x00000000e0900070> (a java.lang.ref.NativeReferenceQueue$Lock)
        at java.lang.Object.wait(java.base@19.0.1/Unknown Source)
        at java.lang.Object.wait(java.base@19.0.1/Unknown Source)
        at java.lang.ref.NativeReferenceQueue.await(java.base@19.0.1/NativeReferenceQueue.java:48)
        at java.lang.ref.ReferenceQueue.remove0(java.base@19.0.1/ReferenceQueue.java:158)
        at java.lang.ref.NativeReferenceQueue.remove(java.base@19.0.1/NativeReferenceQueue.java:89)
        - locked <0x00000000e0900070> (a java.lang.ref.NativeReferenceQueue$Lock)
        at java.lang.ref.Finalizer$FinalizerThread.run(java.base@19.0.1/Finalizer.java:173)

   Locked ownable synchronizers:
        - None

"Signal Dispatcher" #10 [35562] daemon prio=9 os_prio=0 cpu=0.20ms elapsed=6096.89s tid=0x00007f636027cd70 nid=35562 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

"Service Thread" #11 [35563] daemon prio=9 os_prio=0 cpu=8.71ms elapsed=6096.89s tid=0x00007f636027e1f0 nid=35563 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

"Monitor Deflation Thread" #12 [35564] daemon prio=9 os_prio=0 cpu=91.31ms elapsed=6096.89s tid=0x00007f636027f660 nid=35564 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

"C2 CompilerThread0" #13 [35565] daemon prio=9 os_prio=0 cpu=5034.85ms elapsed=6096.89s tid=0x00007f63602810f0 nid=35565 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

   Locked ownable synchronizers:
        - None

"C1 CompilerThread0" #21 [35566] daemon prio=9 os_prio=0 cpu=1210.74ms elapsed=6096.89s tid=0x00007f636028a670 nid=35566 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

   Locked ownable synchronizers:
        - None

"Sweeper thread" #25 [35567] daemon prio=9 os_prio=0 cpu=124.53ms elapsed=6096.89s tid=0x00007f636028bb40 nid=35567 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

"Common-Cleaner" #26 [35568] daemon prio=8 os_prio=0 cpu=2.12ms elapsed=6096.88s tid=0x00007f6360299140 nid=35568 waiting on condition  [0x00007f6336120000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@19.0.1/Native Method)
        - parking to wait for  <0x00000000e0fa28f0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(java.base@19.0.1/LockSupport.java:221)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@19.0.1/AbstractQueuedSynchronizer.java:715)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@19.0.1/AbstractQueuedSynchronizer.java:938)
        at java.util.concurrent.locks.ReentrantLock$Sync.lock(java.base@19.0.1/ReentrantLock.java:153)
        at java.util.concurrent.locks.ReentrantLock.lock(java.base@19.0.1/ReentrantLock.java:322)
        at java.lang.ref.ReferenceQueue.poll(java.base@19.0.1/ReferenceQueue.java:182)
        at org.mockito.internal.util.concurrent.WeakConcurrentMap.expungeStaleEntries(WeakConcurrentMap.java:138)
        at org.mockito.internal.util.concurrent.WeakConcurrentMap$WithInlinedExpunction.containsKey(WeakConcurrentMap.java:272)
        at org.mockito.internal.creation.bytebuddy.MockMethodAdvice.isMock(MockMethodAdvice.java:170)
        at org.mockito.internal.creation.bytebuddy.MockMethodAdvice.isMocked(MockMethodAdvice.java:175)
        at java.lang.Thread.isVirtual(java.base@19.0.1/Thread.java:1518)
        at java.util.concurrent.locks.LockSupport.park(java.base@19.0.1/LockSupport.java:218)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@19.0.1/AbstractQueuedSynchronizer.java:715)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@19.0.1/AbstractQueuedSynchronizer.java:938)
        at java.util.concurrent.locks.ReentrantLock$Sync.lock(java.base@19.0.1/ReentrantLock.java:153)
        at java.util.concurrent.locks.ReentrantLock.lock(java.base@19.0.1/ReentrantLock.java:322)
        at java.lang.ref.ReferenceQueue.poll(java.base@19.0.1/ReferenceQueue.java:182)
        at org.mockito.internal.util.concurrent.WeakConcurrentMap.expungeStaleEntries(WeakConcurrentMap.java:138)
        at org.mockito.internal.util.concurrent.WeakConcurrentMap$WithInlinedExpunction.containsKey(WeakConcurrentMap.java:272)
        at org.mockito.internal.creation.bytebuddy.MockMethodAdvice.isMock(MockMethodAdvice.java:170)
        at org.mockito.internal.creation.bytebuddy.MockMethodAdvice.isMocked(MockMethodAdvice.java:175)
        at java.lang.Thread.isVirtual(java.base@19.0.1/Thread.java:1518)
        at java.util.concurrent.locks.LockSupport.parkNanos(java.base@19.0.1/LockSupport.java:266)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@19.0.1/AbstractQueuedSynchronizer.java:1759)
        at java.lang.ref.ReferenceQueue.await(java.base@19.0.1/ReferenceQueue.java:71)
        at java.lang.ref.ReferenceQueue.remove0(java.base@19.0.1/ReferenceQueue.java:143)
        at java.lang.ref.ReferenceQueue.remove(java.base@19.0.1/ReferenceQueue.java:218)
        at jdk.internal.ref.CleanerImpl.run(java.base@19.0.1/CleanerImpl.java:140)
        at java.lang.Thread.run(java.base@19.0.1/Unknown Source)
        at jdk.internal.misc.InnocuousThread.run(java.base@19.0.1/InnocuousThread.java:186)

   Locked ownable synchronizers:
        - None

"Notification Thread" #28 [35572] daemon prio=9 os_prio=0 cpu=0.05ms elapsed=6096.81s tid=0x00007f636046dba0 nid=35572 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

"/127.0.0.1:47224 to /127.0.0.1:36709 workers" #42 [35592] prio=5 os_prio=0 cpu=6.19ms elapsed=6096.56s tid=0x00007f636087ff90 nid=35592 waiting on condition  [0x00007f6334d09000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@19.0.1/Native Method)
        - parking to wait for  <0x00000000e09030f0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@19.0.1/LockSupport.java:371)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@19.0.1/AbstractQueuedSynchronizer.java:506)
        at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@19.0.1/ForkJoinPool.java:3744)
        at java.util.concurrent.ForkJoinPool.managedBlock(java.base@19.0.1/ForkJoinPool.java:3689)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@19.0.1/AbstractQueuedSynchronizer.java:1625)
        at org.gradle.internal.remote.internal.hub.queue.EndPointQueue.take(EndPointQueue.java:49)
        at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:403)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@19.0.1/ThreadPoolExecutor.java:1144)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@19.0.1/ThreadPoolExecutor.java:642)
        at java.lang.Thread.run(java.base@19.0.1/Unknown Source)

   Locked ownable synchronizers:
        - <0x00000000e0903448> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"/127.0.0.1:47224 to /127.0.0.1:36709 workers Thread 2" #43 [35593] prio=5 os_prio=0 cpu=60.84ms elapsed=6096.55s tid=0x00007f6360896ee0 nid=35593 waiting on condition  [0x00007f6334c09000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@19.0.1/Native Method)
        - parking to wait for  <0x00000000e09e90a0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(java.base@19.0.1/LockSupport.java:371)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@19.0.1/AbstractQueuedSynchronizer.java:506)
        at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@19.0.1/ForkJoinPool.java:3744)
        at java.util.concurrent.ForkJoinPool.managedBlock(java.base@19.0.1/ForkJoinPool.java:3689)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@19.0.1/AbstractQueuedSynchronizer.java:1625)
        at org.gradle.internal.remote.internal.hub.queue.EndPointQueue.take(EndPointQueue.java:49)
        at org.gradle.internal.remote.internal.hub.MessageHub$ConnectionDispatch.run(MessageHub.java:322)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@19.0.1/ThreadPoolExecutor.java:1144)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@19.0.1/ThreadPoolExecutor.java:642)
        at java.lang.Thread.run(java.base@19.0.1/Unknown Source)

   Locked ownable synchronizers:
        - <0x00000000e0901e38> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"/127.0.0.1:47224 to /127.0.0.1:36709 workers Thread 3" #44 [35594] prio=5 os_prio=0 cpu=10.01ms elapsed=6096.55s tid=0x00007f6360897690 nid=35594 runnable  [0x00007f6334b09000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.EPoll.wait(java.base@19.0.1/Native Method)
        at sun.nio.ch.EPollSelectorImpl.doSelect(java.base@19.0.1/EPollSelectorImpl.java:121)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect(java.base@19.0.1/SelectorImpl.java:129)
        - locked <0x00000000e0900288> (a sun.nio.ch.Util$2)
        - locked <0x00000000e0900238> (a sun.nio.ch.EPollSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(java.base@19.0.1/SelectorImpl.java:146)
        at org.gradle.internal.remote.internal.inet.SocketConnection$SocketInputStream.read(SocketConnection.java:185)
        at com.esotericsoftware.kryo.io.Input.fill(Input.java:146)
        at com.esotericsoftware.kryo.io.Input.require(Input.java:178)
        at com.esotericsoftware.kryo.io.Input.readByte(Input.java:295)
        at org.gradle.internal.serialize.kryo.KryoBackedDecoder.readByte(KryoBackedDecoder.java:88)
        at org.gradle.internal.remote.internal.hub.InterHubMessageSerializer$MessageReader.read(InterHubMessageSerializer.java:64)
        at org.gradle.internal.remote.internal.hub.InterHubMessageSerializer$MessageReader.read(InterHubMessageSerializer.java:52)
        at org.gradle.internal.remote.internal.inet.SocketConnection.receive(SocketConnection.java:81)
        at org.gradle.internal.remote.internal.hub.MessageHub$ConnectionReceive.run(MessageHub.java:270)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@19.0.1/ThreadPoolExecutor.java:1144)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@19.0.1/ThreadPoolExecutor.java:642)
        at java.lang.Thread.run(java.base@19.0.1/Unknown Source)

   Locked ownable synchronizers:
        - <0x00000000e09051a8> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"Attach Listener" #46 [35619] daemon prio=9 os_prio=0 cpu=110.47ms elapsed=6095.95s tid=0x00007f6314001000 nid=35619 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

"Java2D Disposer" #52 [35626] daemon prio=10 os_prio=0 cpu=0.53ms elapsed=6095.10s tid=0x00007f6360e5b6b0 nid=35626 waiting on condition  [0x00007f62839eb000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@19.0.1/Native Method)
        - parking to wait for  <0x00000000e0fa28f0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(java.base@19.0.1/LockSupport.java:221)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@19.0.1/AbstractQueuedSynchronizer.java:715)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@19.0.1/AbstractQueuedSynchronizer.java:938)
        at java.util.concurrent.locks.ReentrantLock$Sync.lock(java.base@19.0.1/ReentrantLock.java:153)
        at java.util.concurrent.locks.ReentrantLock.lock(java.base@19.0.1/ReentrantLock.java:322)
        at java.lang.ref.ReferenceQueue.poll(java.base@19.0.1/ReferenceQueue.java:182)
        at org.mockito.internal.util.concurrent.WeakConcurrentMap.expungeStaleEntries(WeakConcurrentMap.java:138)
        at org.mockito.internal.util.concurrent.WeakConcurrentMap$WithInlinedExpunction.containsKey(WeakConcurrentMap.java:272)
        at org.mockito.internal.creation.bytebuddy.MockMethodAdvice.isMock(MockMethodAdvice.java:170)
        at org.mockito.internal.creation.bytebuddy.MockMethodAdvice.isMocked(MockMethodAdvice.java:175)
        at java.lang.Thread.isVirtual(java.base@19.0.1/Thread.java:1518)
        at java.util.concurrent.locks.LockSupport.unpark(java.base@19.0.1/LockSupport.java:178)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.signalNext(java.base@19.0.1/AbstractQueuedSynchronizer.java:611)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.release(java.base@19.0.1/AbstractQueuedSynchronizer.java:1008)
        at java.util.concurrent.locks.ReentrantLock.unlock(java.base@19.0.1/ReentrantLock.java:494)
        at java.lang.ref.ReferenceQueue.poll(java.base@19.0.1/ReferenceQueue.java:186)
        at org.mockito.internal.util.concurrent.WeakConcurrentMap.expungeStaleEntries(WeakConcurrentMap.java:138)
        at org.mockito.internal.util.concurrent.WeakConcurrentMap$WithInlinedExpunction.containsKey(WeakConcurrentMap.java:272)
        at org.mockito.internal.creation.bytebuddy.MockMethodAdvice.isMock(MockMethodAdvice.java:170)
        at java.lang.Object.equals(java.base@19.0.1/Object.java:164)
        at java.util.Vector.indexOf(java.base@19.0.1/Vector.java:400)
        - locked <0x00000000e1139e88> (a java.util.Vector)
        at java.util.Vector.indexOf(java.base@19.0.1/Vector.java:374)
        at java.util.Vector.removeElement(java.base@19.0.1/Vector.java:637)
        - locked <0x00000000e1139e88> (a java.util.Vector)
        at java.util.Vector.remove(java.base@19.0.1/Vector.java:812)
        at java.awt.Window.removeFromWindowList(java.desktop@19.0.1/Window.java:2879)
        - locked <0x00000000e1139ea8> (a java.lang.Class for java.awt.Window)
        at java.awt.Window$WindowDisposerRecord.dispose(java.desktop@19.0.1/Window.java:483)
        at sun.java2d.Disposer.run(java.desktop@19.0.1/Disposer.java:148)
        at java.lang.Thread.run(java.base@19.0.1/Unknown Source)

   Locked ownable synchronizers:
        - None

"AWT-XAWT" #53 [35627] daemon prio=6 os_prio=0 cpu=467.40ms elapsed=6095.10s tid=0x00007f6360e5cbd0 nid=35627 runnable  [0x00007f62838eb000]
   java.lang.Thread.State: RUNNABLE
        at sun.awt.X11.XToolkit.waitForEvents(java.desktop@19.0.1/Native Method)
        at sun.awt.X11.XToolkit.run(java.desktop@19.0.1/XToolkit.java:681)
        at sun.awt.X11.XToolkit.run(java.desktop@19.0.1/XToolkit.java:645)
        at java.lang.Thread.run(java.base@19.0.1/Unknown Source)

   Locked ownable synchronizers:
        - None

"RMI TCP Accept-0" #79 [46570] daemon prio=9 os_prio=0 cpu=0.73ms elapsed=121.79s tid=0x00007f62942ae930 nid=46570 runnable  [0x00007f6334909000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.Net.accept(java.base@19.0.1/Native Method)
        at sun.nio.ch.NioSocketImpl.accept(java.base@19.0.1/NioSocketImpl.java:741)
        at java.net.ServerSocket.implAccept(java.base@19.0.1/ServerSocket.java:690)
        at java.net.ServerSocket.platformImplAccept(java.base@19.0.1/ServerSocket.java:655)
        at java.net.ServerSocket.implAccept(java.base@19.0.1/ServerSocket.java:631)
        at java.net.ServerSocket.implAccept(java.base@19.0.1/ServerSocket.java:588)
        at java.net.ServerSocket.accept(java.base@19.0.1/ServerSocket.java:546)
        at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(jdk.management.agent@19.0.1/LocalRMIServerSocketFactory.java:52)
        at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(java.rmi@19.0.1/TCPTransport.java:424)
        at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(java.rmi@19.0.1/TCPTransport.java:388)
        at java.lang.Thread.run(java.base@19.0.1/Thread.java:1589)

   Locked ownable synchronizers:
        - <0x00000000f4579498> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

"RMI TCP Connection(1)-127.0.0.1" #80 [46573] daemon prio=9 os_prio=0 cpu=374.89ms elapsed=121.76s tid=0x00007f62a8019640 nid=46573 runnable  [0x00007f6334300000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.Net.poll(java.base@19.0.1/Native Method)
        at sun.nio.ch.NioSocketImpl.park(java.base@19.0.1/NioSocketImpl.java:186)
        at sun.nio.ch.NioSocketImpl.timedRead(java.base@19.0.1/NioSocketImpl.java:275)
        at sun.nio.ch.NioSocketImpl.implRead(java.base@19.0.1/NioSocketImpl.java:299)
        at sun.nio.ch.NioSocketImpl.read(java.base@19.0.1/NioSocketImpl.java:340)
        at sun.nio.ch.NioSocketImpl$1.read(java.base@19.0.1/NioSocketImpl.java:789)
        at java.net.Socket$SocketInputStream.read(java.base@19.0.1/Socket.java:1025)
        at java.io.BufferedInputStream.fill(java.base@19.0.1/BufferedInputStream.java:255)
        at java.io.BufferedInputStream.implRead(java.base@19.0.1/BufferedInputStream.java:289)
        at java.io.BufferedInputStream.read(java.base@19.0.1/BufferedInputStream.java:276)
        at java.io.FilterInputStream.read(java.base@19.0.1/FilterInputStream.java:71)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(java.rmi@19.0.1/TCPTransport.java:580)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(java.rmi@19.0.1/TCPTransport.java:844)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(java.rmi@19.0.1/TCPTransport.java:721)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$830/0x00000008012e2000.run(java.rmi@19.0.1/Unknown Source)
        at java.security.AccessController.executePrivileged(java.base@19.0.1/AccessController.java:776)
        at java.security.AccessController.doPrivileged(java.base@19.0.1/AccessController.java:399)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(java.rmi@19.0.1/TCPTransport.java:720)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@19.0.1/ThreadPoolExecutor.java:1144)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@19.0.1/ThreadPoolExecutor.java:642)
        at java.lang.Thread.run(java.base@19.0.1/Thread.java:1589)

   Locked ownable synchronizers:
        - <0x00000000f44604b8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
        - <0x00000000f45b1dd8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
        - <0x00000000f45b64c0> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"RMI Scheduler(0)" #81 [46574] daemon prio=9 os_prio=0 cpu=0.25ms elapsed=121.75s tid=0x00007f629c0c4070 nid=46574 waiting on condition  [0x00007f6336021000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@19.0.1/Native Method)
        - parking to wait for  <0x00000000f4563f30> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.parkNanos(java.base@19.0.1/LockSupport.java:269)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@19.0.1/AbstractQueuedSynchronizer.java:1674)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@19.0.1/ScheduledThreadPoolExecutor.java:1182)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@19.0.1/ScheduledThreadPoolExecutor.java:899)
        at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@19.0.1/ThreadPoolExecutor.java:1070)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@19.0.1/ThreadPoolExecutor.java:1130)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@19.0.1/ThreadPoolExecutor.java:642)
        at java.lang.Thread.run(java.base@19.0.1/Thread.java:1589)

   Locked ownable synchronizers:
        - None

"JMX server connection timeout 82" #82 [46576] daemon prio=9 os_prio=0 cpu=19.22ms elapsed=121.74s tid=0x00007f629c0b2840 nid=46576 in Object.wait()  [0x00007f6335f21000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait0(java.base@19.0.1/Native Method)
        - waiting on <no object reference available>
        at java.lang.Object.wait(java.base@19.0.1/Object.java:366)
        at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(java.management@19.0.1/ServerCommunicatorAdmin.java:171)
        - locked <0x00000000f431eae8> (a [I)
        at java.lang.Thread.run(java.base@19.0.1/Thread.java:1589)

   Locked ownable synchronizers:
        - None

"VM Thread" os_prio=0 cpu=822.81ms elapsed=6096.89s tid=0x00007f6360271330 nid=35559 runnable  

"GC Thread#0" os_prio=0 cpu=22.26ms elapsed=6096.90s tid=0x00007f636004e690 nid=35554 runnable  

"GC Thread#1" os_prio=0 cpu=20.86ms elapsed=6096.67s tid=0x00007f6324009d10 nid=35575 runnable  

"GC Thread#2" os_prio=0 cpu=29.95ms elapsed=6096.67s tid=0x00007f632400a750 nid=35576 runnable  

"GC Thread#3" os_prio=0 cpu=15.79ms elapsed=6096.67s tid=0x00007f632400b190 nid=35577 runnable  

"GC Thread#4" os_prio=0 cpu=12.26ms elapsed=6096.67s tid=0x00007f632400bbd0 nid=35578 runnable  

"GC Thread#5" os_prio=0 cpu=21.53ms elapsed=6096.67s tid=0x00007f632400c610 nid=35579 runnable  

"GC Thread#6" os_prio=0 cpu=27.24ms elapsed=6096.67s tid=0x00007f632400d050 nid=35580 runnable  

"GC Thread#7" os_prio=0 cpu=15.49ms elapsed=6096.67s tid=0x00007f632400de80 nid=35581 runnable  

"GC Thread#8" os_prio=0 cpu=25.97ms elapsed=6096.67s tid=0x00007f632400ecd0 nid=35582 runnable  

"GC Thread#9" os_prio=0 cpu=23.01ms elapsed=6096.67s tid=0x00007f632400fb40 nid=35583 runnable  

"GC Thread#10" os_prio=0 cpu=26.70ms elapsed=6096.67s tid=0x00007f63240105c0 nid=35584 runnable  

"GC Thread#11" os_prio=0 cpu=24.58ms elapsed=6096.67s tid=0x00007f6324011040 nid=35585 runnable  

"GC Thread#12" os_prio=0 cpu=4.00ms elapsed=6094.99s tid=0x00007f6324028370 nid=35629 runnable  

"GC Thread#13" os_prio=0 cpu=11.14ms elapsed=6094.98s tid=0x00007f632402a4b0 nid=35630 runnable  

"GC Thread#14" os_prio=0 cpu=7.06ms elapsed=6094.98s tid=0x00007f632402aca0 nid=35631 runnable  

"GC Thread#15" os_prio=0 cpu=6.79ms elapsed=6094.98s tid=0x00007f632402b630 nid=35632 runnable  

"GC Thread#16" os_prio=0 cpu=11.34ms elapsed=6094.98s tid=0x00007f632402c000 nid=35633 runnable  

"GC Thread#17" os_prio=0 cpu=11.46ms elapsed=6094.55s tid=0x00007f6324030830 nid=35636 runnable  

"G1 Main Marker" os_prio=0 cpu=0.86ms elapsed=6096.90s tid=0x00007f6360053d10 nid=35555 runnable  

"G1 Conc#0" os_prio=0 cpu=13.20ms elapsed=6096.90s tid=0x00007f6360054c40 nid=35556 runnable  

"G1 Conc#1" os_prio=0 cpu=12.31ms elapsed=6095.42s tid=0x00007f6338000d80 nid=35620 runnable  

"G1 Conc#2" os_prio=0 cpu=13.26ms elapsed=6095.42s tid=0x00007f63380017d0 nid=35621 runnable  

"G1 Conc#3" os_prio=0 cpu=12.07ms elapsed=6095.42s tid=0x00007f6338002220 nid=35622 runnable  

"G1 Conc#4" os_prio=0 cpu=13.38ms elapsed=6095.42s tid=0x00007f6338002ca0 nid=35623 runnable  

"G1 Refine#0" os_prio=0 cpu=0.02ms elapsed=6096.90s tid=0x00007f63600181b0 nid=35557 runnable  

"G1 Service" os_prio=0 cpu=520.99ms elapsed=6096.90s tid=0x00007f636024b330 nid=35558 runnable  

"VM Periodic Task Thread" os_prio=0 cpu=1464.31ms elapsed=6096.81s tid=0x00007f6360416be0 nid=35573 waiting on condition  

JNI global refs: 99, weak refs: 5

To Reproduce Unknown

Screenshots image

Your System:

Additional context Add any other context about the problem here.

Gamebuster19901 commented 1 year ago

Blocked by #765

This could be fixed by running the tests in a SwingTestSuite, but this issue is really at the core of how litiengine functions, patching every test for this isn't really the way it should be fixed.

The Game class should instead be fixed.

Gamebuster19901 commented 1 year ago

This issue wasn't fully fixed apparently, please reopen.

New thread dump:

https://pastebin.com/KJzPbcVL

Appears to be another threading issue upon closing the program this time, rather than opening it like before.

Gamebuster19901 commented 1 year ago

Actually I'm just stupid, my local branch wasn't updated