Infinite loop (or similar) when descending from lvl. 3 to lvl. 4 of the CoC
issueid=597 11-14-2011 11:28 AM
Ancient Member
Number of reported issues by Al-Khwarizmi: 41
Infinite loop (or similar) when descending from lvl. 3 to lvl. 4 of the CoC

When I pressed ">" to descend, the game froze and it was taking a full CPU core.

I hope the following VM thread dump can be useful for debugging (that bracers constructor looks suspicious?):

Code:
Full thread dump Java HotSpot(TM) Client VM (20.1-b02 mixed mode, sharing):

"Thread-15" prio=6 tid=0x3ab8e800 nid=0x3374 runnable [0x3e54e000]
   java.lang.Thread.State: RUNNABLE
	at java.util.Random.next(Unknown Source)
	at java.util.Random.nextInt(Unknown Source)
	at de.adom.jade.kernel.game.Game.random(SourceFile:467)
	at de.adom.jade.kernel.SC.random(SourceFile:58)
	at de.adom.jade.kernel.SC.OED(SourceFile:218)
	at de.adom.jade.kernel.SC.OED(SourceFile:238)
	at de.adom.jade.items.list.bracers.BracersOfDefense.<init>(SourceFile:57)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at de.adom.jade.kernel.RarityBasedFactory.create(SourceFile:556)
	at de.adom.jade.kernel.RarityBasedFactory.create(SourceFile:366)
	at de.adom.jade.world.complexes.locations.maps.DungeonMap.placeItems(SourceFile:282)
	at de.adom.jade.world.complexes.locations.maps.DungeonMap.digDungeon(SourceFile:103)
	at de.adom.jade.world.complexes.locations.maps.DungeonMap.<init>(SourceFile:74)
	at de.adom.jade.world.complexes.locations.DungeonLevel.createDungeonMap(SourceFile:122)
	at de.adom.jade.world.complexes.locations.DungeonLevel.createMap(SourceFile:111)
	at de.adom.jade.world.complexes.locations.Location.getMap(SourceFile:250)
	at de.adom.jade.world.complexes.locations.LocationManager.transferToTargetMapOrTemporaryBufferAndAdjustPosition(SourceFile:182)
	at de.adom.jade.beings.brains.PCBrain.enterLocation(SourceFile:401)
	at de.adom.jade.beings.Being.enterLocation(SourceFile:2396)
	at de.adom.jade.beings.Being.doEnterLocation(SourceFile:2341)
	at de.adom.jade.ui.commands.CommandEnterLocationPreferUp.executeImpl(SourceFile:48)
	at de.adom.jade.ui.commands.Command.execute(SourceFile:510)
	at de.adom.jade.beings.brains.PCBrain.doActImpl(SourceFile:142)
	at de.adom.jade.beings.brains.AbstractBrain.doAct(SourceFile:398)
	at de.adom.jade.beings.Being.actImpl(SourceFile:674)
	at de.adom.jade.kernel.actors.AbstractActor.act(SourceFile:58)
	at de.adom.jade.kernel.actors.ActorReference.act(SourceFile:60)
	at de.adom.jade.kernel.GameLoop.run(SourceFile:111)

"TimerQueue" daemon prio=6 tid=0x3ab8d400 nid=0x1e44 in Object.wait() [0x3f4af000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at javax.swing.TimerQueue.run(Unknown Source)
	- locked <0x15ebd4c8> (a javax.swing.TimerQueue)
	at java.lang.Thread.run(Unknown Source)

"AWT-EventQueue-0" prio=6 tid=0x3ab8e000 nid=0x2508 in Object.wait() [0x408cf000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Object.java:485)
	at java.awt.EventQueue.getNextEvent(Unknown Source)
	- locked <0x145edd98> (a java.awt.EventQueue)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

"D3D Screen Updater" daemon prio=8 tid=0x3ab8c800 nid=0x245c in Object.wait() [0x3f68f000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at sun.java2d.d3d.D3DScreenUpdateManager.run(Unknown Source)
	- locked <0x146c5390> (a java.lang.Object)
	at java.lang.Thread.run(Unknown Source)

"AWT-EventQueue-1" prio=6 tid=0x3ab8c000 nid=0x26b0 waiting on condition [0x3eafe000]
   java.lang.Thread.State: RUNNABLE
	at com.sun.deploy.util.ConsoleHelper.dumpAllStacksImpl(Native Method)
	at com.sun.deploy.util.ConsoleHelper.dumpAllStacks(Unknown Source)
	at com.sun.javaws.util.JavawsConsoleController14.dumpAllStacks(Unknown Source)
	at com.sun.deploy.util.ConsoleWindow$2.actionPerformed(Unknown Source)
	at javax.swing.JComponent$ActionStandin.actionPerformed(Unknown Source)
	at javax.swing.SwingUtilities.notifyAction(Unknown Source)
	at javax.swing.JComponent.processKeyBinding(Unknown Source)
	at javax.swing.KeyboardManager.fireBinding(Unknown Source)
	at javax.swing.KeyboardManager.fireKeyboardAction(Unknown Source)
	at javax.swing.JComponent.processKeyBindingsForAllComponents(Unknown Source)
	at javax.swing.JComponent.processKeyBindings(Unknown Source)
	at javax.swing.JComponent.processKeyEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
	at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
	at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
	at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$000(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

"AWT-Shutdown" prio=6 tid=0x3ab8b400 nid=0x1e08 in Object.wait() [0x3ea6f000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Object.java:485)
	at sun.awt.AWTAutoShutdown.run(Unknown Source)
	- locked <0x145e06f0> (a java.lang.Object)
	at java.lang.Thread.run(Unknown Source)

"TimerQueue" daemon prio=6 tid=0x3ab8b000 nid=0x1e00 in Object.wait() [0x3f24f000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at javax.swing.TimerQueue.run(Unknown Source)
	- locked <0x145a2c70> (a javax.swing.TimerQueue)
	at java.lang.Thread.run(Unknown Source)

"CacheCleanUpThread" daemon prio=6 tid=0x3ab72800 nid=0x2608 in Object.wait() [0x3ecaf000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x145a2c80> (a com.sun.deploy.cache.CleanupThread)
	at java.lang.Object.wait(Object.java:485)
	at com.sun.deploy.cache.CleanupThread.run(Unknown Source)
	- locked <0x145a2c80> (a com.sun.deploy.cache.CleanupThread)

"CacheMemoryCleanUpThread" daemon prio=6 tid=0x3ab6cc00 nid=0x4ac in Object.wait() [0x3ec1f000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.lang.ref.ReferenceQueue.remove(Unknown Source)
	- locked <0x145a2db8> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(Unknown Source)
	at com.sun.deploy.cache.MemoryCache$LoadedResourceCleanupThread.run(Unknown Source)

"ConsoleWriterThread" daemon prio=6 tid=0x3ab6bc00 nid=0x223c in Object.wait() [0x3eb8f000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Object.java:485)
	at com.sun.deploy.util.ConsoleTraceListener$ConsoleWriterThread.run(Unknown Source)
	- locked <0x145a2e48> (a java.lang.Object)

"DestroyJavaVM" prio=6 tid=0x0228b400 nid=0x1cd4 waiting on condition [0x00000000]
   java.lang.Thread.State: RUNNABLE

"Javaws Secure Thread" daemon prio=6 tid=0x3aadd000 nid=0x1e20 in Object.wait() [0x3afdf000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x145a3118> (a java.lang.Object)
	at java.lang.Object.wait(Object.java:485)
	at com.sun.javaws.ui.JavawsSysRun$SecureThread.run(Unknown Source)
	- locked <0x145a3118> (a java.lang.Object)

"AWT-Windows" daemon prio=6 tid=0x3aadb800 nid=0x2408 runnable [0x3ae2f000]
   java.lang.Thread.State: RUNNABLE
	at sun.awt.windows.WToolkit.eventLoop(Native Method)
	at sun.awt.windows.WToolkit.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

"Java2D Disposer" daemon prio=10 tid=0x3aada800 nid=0x2468 in Object.wait() [0x3aa4f000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.lang.ref.ReferenceQueue.remove(Unknown Source)
	- locked <0x145a3200> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(Unknown Source)
	at sun.java2d.Disposer.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

"traceMsgQueueThread" daemon prio=6 tid=0x01d5ec00 nid=0x216c in Object.wait() [0x3a73f000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Object.java:485)
	at com.sun.deploy.util.Trace$TraceMsgQueueChecker.run(Unknown Source)
	- locked <0x145a3298> (a java.util.ArrayList)
	at java.lan
Trace message truncated for length over 10K
Issue Details
Issue Number 597
Project ADOM II (formerly known as JADE)
Category Unknown
Status Duplicate
Priority Unknown
Affected Version JADE 0.2.2
Fixed Version (none)
Users able to reproduce bug 1
Users unable to reproduce bug 0
Assigned Users (none)
Tags (none)




04-08-2012 05:44 PM

+ Reply