Re: imageJ instability?

Posted by Winnok H. De Vos on
URL: http://imagej.273.s1.nabble.com/imageJ-instability-tp3699327p3699333.html

Hello Curtis,
I tried selectively disabling certain extensions with ShellExView but,
unfortunately, without eliminating of the problem.
I ran the command promt and followed Curtis' instructions. I ran "Duplicate"
till it blocked and got the following messages with one deadlock detected. I
also ran a custom macro till it blocked and got a different error. I included
both command promt prints.
Does the following make sense to you ?
Thanks in advance.
Regards,
winnok

1.When duplicating:

"
C:\Documents and Settings\winnok de vos>cd "C:\Program Files\ImageJ

C:\Program Files\ImageJ>jre\bin\java -mx256m -jar ij.jar
Full thread dump Java HotSpot(TM) Client VM (1.5.0_06-b05 mixed mode):

"SliceSelector" prio=4 tid=0x1728d2b0 nid=0x53c in Object.wait()
[0x1853f000..0x
1853fd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x02b3ada8> (a ij.gui.StackWindow)
        at java.lang.Object.wait(Unknown Source)
        at ij.gui.StackWindow.run(StackWindow.java:94)
        - locked <0x02b3ada8> (a ij.gui.StackWindow)
        at java.lang.Thread.run(Unknown Source)

"Duplicate..." prio=4 tid=0x16eb98f8 nid=0x11c waiting for monitor
entry [0x183b
f000..0x183bf9e8]
        at ij.WindowManager.removeWindow(WindowManager.java:252)
        - waiting to lock <0x12fffdc0> (a java.lang.Class)
        at ij.gui.ImageWindow.close(ImageWindow.java:311)
        at ij.gui.StackWindow.close(StackWindow.java:67)
        at ij.gui.ImageWindow.<init>(ImageWindow.java:102)
        at ij.gui.StackWindow.<init>(StackWindow.java:20)
        at OpenStackWindow.<init>(OpenStackWindow.java:28)
        at OpenImage5DAdapter.makeOpenWindow(OpenImage5DAdapter.java:32)
        at Sync_Windows.buildWindowList(Sync_Windows.java:698)
        at Sync_Windows.updateWindowList(Sync_Windows.java:828)
        at Sync_Windows.imageOpened(Sync_Windows.java:657)
        at ij.ImagePlus.notifyListeners(ImagePlus.java:1581)
        - locked <0x02b25e50> (a ij.ImagePlus)
        at ij.ImagePlus.show(ImagePlus.java:361)
        at ij.ImagePlus.show(ImagePlus.java:321)
        at ij.plugin.filter.Duplicater.duplicate(Duplicater.java:48)
        at ij.plugin.filter.Duplicater.run(Duplicater.java:19)
        at ij.IJ.runFilterPlugIn(IJ.java:218)
        at ij.IJ.runPlugIn(IJ.java:132)
        at ij.Executer.runCommand(Executer.java:95)
        at ij.Executer.run(Executer.java:49)
        at java.lang.Thread.run(Unknown Source)

"SliceSelector" prio=4 tid=0x17249aa8 nid=0x2c4 in Object.wait()
[0x1849f000..0x
1849fa68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x049dd270> (a OpenStackWindow)
        at java.lang.Object.wait(Unknown Source)
        at ij.gui.StackWindow.run(StackWindow.java:94)
        - locked <0x049dd270> (a OpenStackWindow)
        at java.lang.Thread.run(Unknown Source)

"SliceSelector" prio=4 tid=0x17249920 nid=0xa8c in Object.wait()
[0x183ff000..0x
183ffbe8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x04910d00> (a OpenStackWindow)
        at java.lang.Object.wait(Unknown Source)
        at ij.gui.StackWindow.run(StackWindow.java:94)
        - locked <0x04910d00> (a OpenStackWindow)
        at java.lang.Thread.run(Unknown Source)

"SliceSelector" prio=4 tid=0x171efeb8 nid=0xde4 in Object.wait()
[0x1837f000..0x
1837fd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x04757410> (a OpenStackWindow)
        at java.lang.Object.wait(Unknown Source)
        at ij.gui.StackWindow.run(StackWindow.java:94)
        - locked <0x04757410> (a OpenStackWindow)
        at java.lang.Thread.run(Unknown Source)

"ThresholdAdjuster" prio=4 tid=0x16f0c5a8 nid=0xac in Object.wait()
[0x1808f000.
.0x1808fa68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x04456550> (a ij.plugin.frame.ThresholdAdjuster)
        at java.lang.Object.wait(Unknown Source)
        at ij.plugin.frame.ThresholdAdjuster.run(ThresholdAdjuster.java:530)
        - locked <0x04456550> (a ij.plugin.frame.ThresholdAdjuster)
        at java.lang.Thread.run(Unknown Source)

"SliceSelector" prio=4 tid=0x1728f008 nid=0xb6c in Object.wait()
[0x17f0f000..0x
17f0fae8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x04456778> (a OpenStackWindow)
        at java.lang.Object.wait(Unknown Source)
        at ij.gui.StackWindow.run(StackWindow.java:94)
        - locked <0x04456778> (a OpenStackWindow)
        at java.lang.Thread.run(Unknown Source)

"SliceSelector" prio=4 tid=0x16dbca40 nid=0xbec in Object.wait()
[0x17fef000..0x
17fefb68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x04456970> (a OpenStackWindow)
        at java.lang.Object.wait(Unknown Source)
        at ij.gui.StackWindow.run(StackWindow.java:94)
        - locked <0x04456970> (a OpenStackWindow)
        at java.lang.Thread.run(Unknown Source)

"TimerQueue" daemon prio=6 tid=0x16edc2e0 nid=0xe2c in Object.wait()
[0x17ebf000
..0x17ebfa68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x0407eb98> (a javax.swing.TimerQueue)
        at javax.swing.TimerQueue.run(Unknown Source)
        - locked <0x0407eb98> (a javax.swing.TimerQueue)
        at java.lang.Thread.run(Unknown Source)

"DestroyJavaVM" prio=6 tid=0x000360f0 nid=0xfd0 waiting on condition
[0x00000000
..0x0007fae8]

"SocketListener" prio=6 tid=0x16ef0df0 nid=0xdb8 runnable
[0x1761f000..0x1761fae
8]
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(Unknown Source)
        - locked <0x03fa3868> (a java.net.SocksSocketImpl)
        at java.net.ServerSocket.implAccept(Unknown Source)
        at java.net.ServerSocket.accept(Unknown Source)
        at ij.SocketListener.run(SocketListener.java:31)
        at java.lang.Thread.run(Unknown Source)

"AWT-EventQueue-0" prio=6 tid=0x16db4008 nid=0x850 waiting for monitor
entry [0x
170cf000..0x170cfc68]
        at ij.ImagePlus.trimProcessor(ImagePlus.java:591)
        - waiting to lock <0x02b25e50> (a ij.ImagePlus)
        at ij.WindowManager.setCurrentWindow(WindowManager.java:37)
        - locked <0x12fffdc0> (a java.lang.Class)
        at ij.gui.ImageWindow.focusGained(ImageWindow.java:407)
        at java.awt.Component.processFocusEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Window.processEvent(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.KeyboardFocusManager.redispatchEvent(Unknown Source)
        at
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Sour
ce)
        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.dispatchEvent(Unknown Source)
        at java.awt.SequencedEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(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-Windows" daemon prio=6 tid=0x16d6a198 nid=0xc84 runnable
[0x1702f000..0x170
2fce8]
        at sun.awt.windows.WToolkit.eventLoop(Native Method)
        at sun.awt.windows.WToolkit.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"AWT-Shutdown" prio=6 tid=0x16d4e398 nid=0x678 in Object.wait()
[0x16fef000..0x1
6fefd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x03eb01b0> (a java.lang.Object)
        at java.lang.Object.wait(Unknown Source)
        at sun.awt.AWTAutoShutdown.run(Unknown Source)
        - locked <0x03eb01b0> (a java.lang.Object)
        at java.lang.Thread.run(Unknown Source)

"Java2D Disposer" daemon prio=10 tid=0x16d81bf0 nid=0xdd8 in
Object.wait() [0x16
faf000..0x16faf9e8]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x03eb0238> (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)

"Low Memory Detector" daemon prio=6 tid=0x00a91970 nid=0x9ec runnable
[0x0000000
0..0x00000000]

"CompilerThread0" daemon prio=10 tid=0x00a90540 nid=0xe8 waiting on
condition [0
x00000000..0x16c8f8cc]

"Signal Dispatcher" daemon prio=10 tid=0x00a8f8c0 nid=0xd38 waiting on
condition
[0x00000000..0x00000000]

"Finalizer" daemon prio=8 tid=0x00a869e0 nid=0xfe8 in Object.wait()
[0x16c0f000.
.0x16c0fc68]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x03e9b9e0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

"Reference Handler" daemon prio=10 tid=0x00a85548 nid=0xe68 in
Object.wait() [0x
16bcf000..0x16bcfce8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x03e9ba60> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Unknown Source)
        at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
        - locked <0x03e9ba60> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x00a813a8 nid=0xabc runnable

"VM Periodic Task Thread" prio=10 tid=0x00a92b50 nid=0x8a4 waiting on
condition



Found one Java-level deadlock:
=============================
"Duplicate...":
  waiting to lock monitor 0x00a86354 (object 0x12fffdc0, a java.lang.Class),
  which is held by "AWT-EventQueue-0"
"AWT-EventQueue-0":
  waiting to lock monitor 0x00a86374 (object 0x02b25e50, a ij.ImagePlus),
  which is held by "Duplicate..."

Java stack information for the threads listed above:
===================================================
"Duplicate...":
        at ij.WindowManager.removeWindow(WindowManager.java:252)
        - waiting to lock <0x12fffdc0> (a java.lang.Class)
        at ij.gui.ImageWindow.close(ImageWindow.java:311)
        at ij.gui.StackWindow.close(StackWindow.java:67)
        at ij.gui.ImageWindow.<init>(ImageWindow.java:102)
        at ij.gui.StackWindow.<init>(StackWindow.java:20)
        at OpenStackWindow.<init>(OpenStackWindow.java:28)
        at OpenImage5DAdapter.makeOpenWindow(OpenImage5DAdapter.java:32)
        at Sync_Windows.buildWindowList(Sync_Windows.java:698)
        at Sync_Windows.updateWindowList(Sync_Windows.java:828)
        at Sync_Windows.imageOpened(Sync_Windows.java:657)
        at ij.ImagePlus.notifyListeners(ImagePlus.java:1581)
        - locked <0x02b25e50> (a ij.ImagePlus)
        at ij.ImagePlus.show(ImagePlus.java:361)
        at ij.ImagePlus.show(ImagePlus.java:321)
        at ij.plugin.filter.Duplicater.duplicate(Duplicater.java:48)
        at ij.plugin.filter.Duplicater.run(Duplicater.java:19)
        at ij.IJ.runFilterPlugIn(IJ.java:218)
        at ij.IJ.runPlugIn(IJ.java:132)
        at ij.Executer.runCommand(Executer.java:95)
        at ij.Executer.run(Executer.java:49)
        at java.lang.Thread.run(Unknown Source)
"AWT-EventQueue-0":
        at ij.ImagePlus.trimProcessor(ImagePlus.java:591)
        - waiting to lock <0x02b25e50> (a ij.ImagePlus)
        at ij.WindowManager.setCurrentWindow(WindowManager.java:37)
        - locked <0x12fffdc0> (a java.lang.Class)
        at ij.gui.ImageWindow.focusGained(ImageWindow.java:407)
        at java.awt.Component.processFocusEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Window.processEvent(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.KeyboardFocusManager.redispatchEvent(Unknown Source)
        at
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Sour
ce)
        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.dispatchEvent(Unknown Source)
        at java.awt.SequencedEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(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)

Found 1 deadlock.
"

2. When running the macro

"


C:\Documents and Settings\winnok de vos>cd "C:\Program Files\ImageJ

C:\Program Files\ImageJ>jre\bin\java -mx256m -jar ij.jar
Full thread dump Java HotSpot(TM) Client VM (1.5.0_06-b05 mixed mode):

"SliceSelector" prio=4 tid=0x1728d2b0 nid=0x53c in Object.wait()
[0x1853f000..0x
1853fd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x02b3ada8> (a ij.gui.StackWindow)
        at java.lang.Object.wait(Unknown Source)
        at ij.gui.StackWindow.run(StackWindow.java:94)
        - locked <0x02b3ada8> (a ij.gui.StackWindow)
        at java.lang.Thread.run(Unknown Source)

"Duplicate..." prio=4 tid=0x16eb98f8 nid=0x11c waiting for monitor
entry [0x183b
f000..0x183bf9e8]
        at ij.WindowManager.removeWindow(WindowManager.java:252)
        - waiting to lock <0x12fffdc0> (a java.lang.Class)
        at ij.gui.ImageWindow.close(ImageWindow.java:311)
        at ij.gui.StackWindow.close(StackWindow.java:67)
        at ij.gui.ImageWindow.<init>(ImageWindow.java:102)
        at ij.gui.StackWindow.<init>(StackWindow.java:20)
        at OpenStackWindow.<init>(OpenStackWindow.java:28)
        at OpenImage5DAdapter.makeOpenWindow(OpenImage5DAdapter.java:32)
        at Sync_Windows.buildWindowList(Sync_Windows.java:698)
        at Sync_Windows.updateWindowList(Sync_Windows.java:828)
        at Sync_Windows.imageOpened(Sync_Windows.java:657)
        at ij.ImagePlus.notifyListeners(ImagePlus.java:1581)
        - locked <0x02b25e50> (a ij.ImagePlus)
        at ij.ImagePlus.show(ImagePlus.java:361)
        at ij.ImagePlus.show(ImagePlus.java:321)
        at ij.plugin.filter.Duplicater.duplicate(Duplicater.java:48)
        at ij.plugin.filter.Duplicater.run(Duplicater.java:19)
        at ij.IJ.runFilterPlugIn(IJ.java:218)
        at ij.IJ.runPlugIn(IJ.java:132)
        at ij.Executer.runCommand(Executer.java:95)
        at ij.Executer.run(Executer.java:49)
        at java.lang.Thread.run(Unknown Source)

"SliceSelector" prio=4 tid=0x17249aa8 nid=0x2c4 in Object.wait()
[0x1849f000..0x
1849fa68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x049dd270> (a OpenStackWindow)
        at java.lang.Object.wait(Unknown Source)
        at ij.gui.StackWindow.run(StackWindow.java:94)
        - locked <0x049dd270> (a OpenStackWindow)
        at java.lang.Thread.run(Unknown Source)

"SliceSelector" prio=4 tid=0x17249920 nid=0xa8c in Object.wait()
[0x183ff000..0x
183ffbe8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x04910d00> (a OpenStackWindow)
        at java.lang.Object.wait(Unknown Source)
        at ij.gui.StackWindow.run(StackWindow.java:94)
        - locked <0x04910d00> (a OpenStackWindow)
        at java.lang.Thread.run(Unknown Source)

"SliceSelector" prio=4 tid=0x171efeb8 nid=0xde4 in Object.wait()
[0x1837f000..0x
1837fd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x04757410> (a OpenStackWindow)
        at java.lang.Object.wait(Unknown Source)
        at ij.gui.StackWindow.run(StackWindow.java:94)
        - locked <0x04757410> (a OpenStackWindow)
        at java.lang.Thread.run(Unknown Source)

"ThresholdAdjuster" prio=4 tid=0x16f0c5a8 nid=0xac in Object.wait()
[0x1808f000.
.0x1808fa68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x04456550> (a ij.plugin.frame.ThresholdAdjuster)
        at java.lang.Object.wait(Unknown Source)
        at ij.plugin.frame.ThresholdAdjuster.run(ThresholdAdjuster.java:530)
        - locked <0x04456550> (a ij.plugin.frame.ThresholdAdjuster)
        at java.lang.Thread.run(Unknown Source)

"SliceSelector" prio=4 tid=0x1728f008 nid=0xb6c in Object.wait()
[0x17f0f000..0x
17f0fae8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x04456778> (a OpenStackWindow)
        at java.lang.Object.wait(Unknown Source)
        at ij.gui.StackWindow.run(StackWindow.java:94)
        - locked <0x04456778> (a OpenStackWindow)
        at java.lang.Thread.run(Unknown Source)

"SliceSelector" prio=4 tid=0x16dbca40 nid=0xbec in Object.wait()
[0x17fef000..0x
17fefb68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x04456970> (a OpenStackWindow)
        at java.lang.Object.wait(Unknown Source)
        at ij.gui.StackWindow.run(StackWindow.java:94)
        - locked <0x04456970> (a OpenStackWindow)
        at java.lang.Thread.run(Unknown Source)

"TimerQueue" daemon prio=6 tid=0x16edc2e0 nid=0xe2c in Object.wait()
[0x17ebf000
..0x17ebfa68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x0407eb98> (a javax.swing.TimerQueue)
        at javax.swing.TimerQueue.run(Unknown Source)
        - locked <0x0407eb98> (a javax.swing.TimerQueue)
        at java.lang.Thread.run(Unknown Source)

"DestroyJavaVM" prio=6 tid=0x000360f0 nid=0xfd0 waiting on condition
[0x00000000
..0x0007fae8]

"SocketListener" prio=6 tid=0x16ef0df0 nid=0xdb8 runnable
[0x1761f000..0x1761fae
8]
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(Unknown Source)
        - locked <0x03fa3868> (a java.net.SocksSocketImpl)
        at java.net.ServerSocket.implAccept(Unknown Source)
        at java.net.ServerSocket.accept(Unknown Source)
        at ij.SocketListener.run(SocketListener.java:31)
        at java.lang.Thread.run(Unknown Source)

"AWT-EventQueue-0" prio=6 tid=0x16db4008 nid=0x850 waiting for monitor
entry [0x
170cf000..0x170cfc68]
        at ij.ImagePlus.trimProcessor(ImagePlus.java:591)
        - waiting to lock <0x02b25e50> (a ij.ImagePlus)
        at ij.WindowManager.setCurrentWindow(WindowManager.java:37)
        - locked <0x12fffdc0> (a java.lang.Class)
        at ij.gui.ImageWindow.focusGained(ImageWindow.java:407)
        at java.awt.Component.processFocusEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Window.processEvent(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.KeyboardFocusManager.redispatchEvent(Unknown Source)
        at
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Sour
ce)
        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.dispatchEvent(Unknown Source)
        at java.awt.SequencedEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(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-Windows" daemon prio=6 tid=0x16d6a198 nid=0xc84 runnable
[0x1702f000..0x170
2fce8]
        at sun.awt.windows.WToolkit.eventLoop(Native Method)
        at sun.awt.windows.WToolkit.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"AWT-Shutdown" prio=6 tid=0x16d4e398 nid=0x678 in Object.wait()
[0x16fef000..0x1
6fefd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x03eb01b0> (a java.lang.Object)
        at java.lang.Object.wait(Unknown Source)
        at sun.awt.AWTAutoShutdown.run(Unknown Source)
        - locked <0x03eb01b0> (a java.lang.Object)
        at java.lang.Thread.run(Unknown Source)

"Java2D Disposer" daemon prio=10 tid=0x16d81bf0 nid=0xdd8 in
Object.wait() [0x16
faf000..0x16faf9e8]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x03eb0238> (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)

"Low Memory Detector" daemon prio=6 tid=0x00a91970 nid=0x9ec runnable
[0x0000000
0..0x00000000]

"CompilerThread0" daemon prio=10 tid=0x00a90540 nid=0xe8 waiting on
condition [0
x00000000..0x16c8f8cc]

"Signal Dispatcher" daemon prio=10 tid=0x00a8f8c0 nid=0xd38 waiting on
condition
[0x00000000..0x00000000]

"Finalizer" daemon prio=8 tid=0x00a869e0 nid=0xfe8 in Object.wait()
[0x16c0f000.
.0x16c0fc68]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x03e9b9e0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

"Reference Handler" daemon prio=10 tid=0x00a85548 nid=0xe68 in
Object.wait() [0x
16bcf000..0x16bcfce8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x03e9ba60> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Unknown Source)
        at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
        - locked <0x03e9ba60> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x00a813a8 nid=0xabc runnable

"VM Periodic Task Thread" prio=10 tid=0x00a92b50 nid=0x8a4 waiting on
condition



Found one Java-level deadlock:
=============================
"Duplicate...":
  waiting to lock monitor 0x00a86354 (object 0x12fffdc0, a java.lang.Class),
  which is held by "AWT-EventQueue-0"
"AWT-EventQueue-0":
  waiting to lock monitor 0x00a86374 (object 0x02b25e50, a ij.ImagePlus),
  which is held by "Duplicate..."

Java stack information for the threads listed above:
===================================================
"Duplicate...":
        at ij.WindowManager.removeWindow(WindowManager.java:252)
        - waiting to lock <0x12fffdc0> (a java.lang.Class)
        at ij.gui.ImageWindow.close(ImageWindow.java:311)
        at ij.gui.StackWindow.close(StackWindow.java:67)
        at ij.gui.ImageWindow.<init>(ImageWindow.java:102)
        at ij.gui.StackWindow.<init>(StackWindow.java:20)
        at OpenStackWindow.<init>(OpenStackWindow.java:28)
        at OpenImage5DAdapter.makeOpenWindow(OpenImage5DAdapter.java:32)
        at Sync_Windows.buildWindowList(Sync_Windows.java:698)
        at Sync_Windows.updateWindowList(Sync_Windows.java:828)
        at Sync_Windows.imageOpened(Sync_Windows.java:657)
        at ij.ImagePlus.notifyListeners(ImagePlus.java:1581)
        - locked <0x02b25e50> (a ij.ImagePlus)
        at ij.ImagePlus.show(ImagePlus.java:361)
        at ij.ImagePlus.show(ImagePlus.java:321)
        at ij.plugin.filter.Duplicater.duplicate(Duplicater.java:48)
        at ij.plugin.filter.Duplicater.run(Duplicater.java:19)
        at ij.IJ.runFilterPlugIn(IJ.java:218)
        at ij.IJ.runPlugIn(IJ.java:132)
        at ij.Executer.runCommand(Executer.java:95)
        at ij.Executer.run(Executer.java:49)
        at java.lang.Thread.run(Unknown Source)
"AWT-EventQueue-0":
        at ij.ImagePlus.trimProcessor(ImagePlus.java:591)
        - waiting to lock <0x02b25e50> (a ij.ImagePlus)
        at ij.WindowManager.setCurrentWindow(WindowManager.java:37)
        - locked <0x12fffdc0> (a java.lang.Class)
        at ij.gui.ImageWindow.focusGained(ImageWindow.java:407)
        at java.awt.Component.processFocusEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Window.processEvent(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.KeyboardFocusManager.redispatchEvent(Unknown Source)
        at
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Sour
ce)
        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.dispatchEvent(Unknown Source)
        at java.awt.SequencedEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(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)

Found 1 deadlock.


















































Quoting Curtis Rueden <[hidden email]>:

> Hi Harry & Winnok,
>
> Winnok De Vos wrote:
>> I will try debug mode. Is there something else I can try?
>
> Harry Parker wrote:
>> Its not consistent, so I think its some kind of thread deadlock
>> related problem.
>
> If you are feeling investigative, one thing you can do is obtain a
> full stack trace. How to do so depends on your operating system. On
> Windows (version bundled with JRE):
>
> Click Start, All Programs, Accessories, Command Prompt. In the window, type:
>
> C:\Documents and Settings\curtis>cd "C:\Program Files\ImageJ"
> C:\Program Files\ImageJ>jre\bin\java -mx256m -jar ij.jar
>
> Perform the operations that cause the deadlock (if it doesn't happen,
> just close the program and try again). Then click the Command Prompt
> window and press Ctrl+Pause (for Mac and Linux, the combo is Ctrl+\).
> You should see a whole bunch of text, similar to:
>
> Full thread dump Java HotSpot(TM) Client VM (1.5.0_09-b01 mixed mode):
>
> "DestroyJavaVM" prio=6 tid=0x000354a0 nid=0xdf4 waiting on condition
> [0x00000000
> ..0x0007fae8]
>
> "SocketListener" prio=6 tid=0x16e83980 nid=0x758 runnable
> [0x1715f000..0x1715fd6
> 8]
>        at java.net.PlainSocketImpl.socketAccept(Native Method)
> ...................
>
> You can right-click, choose "Mark", select all the text, press enter,
> then paste it into an email message. This information can be useful
> for showing lines of code within ImageJ (if any) where the program is
> stuck. It can also report certain kinds of deadlocks.
>
> -Curtis
>
> On 5/21/07, Harry Parker <[hidden email]> wrote:
>> Hi all,
>>
>> On my Windows system, the only lockup issue I've seen is when
>> closing ImageJ with 2 or more images open.
>> This happens most often after I've used one of my custom filter
>> plugins. What happens is the "Save changes to ...?" dialog comes up
>> empty (buttons but no text in window). Then I must use the task
>> manager to abort ImageJ. Its not consistent, so I think its some
>> kind of thread deadlock related problem. It doesn't happen when I'm
>> in Debug Mode. (The Heisenberg Uncertainty Principle applied to
>> software?)
>>
>> --
>> Harry Parker
>> Senior Systems Engineer
>> Digital Imaging Systems, Inc.
>>
>> ----- Original Message ----
>> From: Winnok De Vos <[hidden email]>
>> To: [hidden email]
>> Sent: Friday, May 18, 2007 1:43:05 PM
>> Subject: imageJ instability?
>>
>> Dear all,
>>
>> Lately I have been experiencing some stability problems with imageJ
>> which seem
>> to worsen. When I duplicate or crop a couple of images or run other commands
>> that create a new window it quite often causes imageJ to crash, ie
>> the window
>> remains white and I have no other option but to close imageJ using a
>> complete
>> process closing. I have tried changing the memory settings but this has no
>> influence whatsoever. I also tried reinstalling imageJ but this didn't prove
>> succesfull either. Has anybody encountered such instability? How can
>> I resolve
>> this issue?
>> Many thanks in advance.
>> Kind regards,
>> winnok
>>
>> --
>> assistent prof. P. Van Oostveldt
>> Dep. Moleculaire Biotechnologie
>> Fac. Toegepaste Landbouwwetenschappen, Ugent
>> Coupure links 653
>> 9000 Gent
>> tel. (0032) 09/264.59.71
>>
>>
>>
>>
>>
>>
>> ____________________________________________________________________________________Get the free Yahoo! toolbar and rest assured with the added security of spyware
>> protection.
>> http://new.toolbar.yahoo.com/toolbar/features/norton/index.php
>>
>



--
assistent prof. P. Van Oostveldt
Dep. Moleculaire Biotechnologie
Fac. Toegepaste Landbouwwetenschappen, Ugent
Coupure links 653
9000 Gent
tel. (0032) 09/264.59.71