NOTICE! This is a static HTML version of a legacy Fiji BugZilla bug.

The Fiji project now uses GitHub Issues for issue tracking.

Please file all new issues there.

Bug 857 - Stack Dump window appears on play image stack
Stack Dump window appears on play image stack
Status: RESOLVED FIXED
Product: Fiji
Classification: Unclassified
Component: Plugins
unspecified
PC Windows
: P4 normal
Assigned To: Curtis Rueden
Depends on:
Blocks:
 
Reported: 2014-07-17 00:36 CDT by James Burchfield
Modified: 2014-08-22 12:12 CDT
4 users (show)

See Also:

Description James Burchfield 2014-07-17 00:36:19 CDT
Stack Dump window appears on play image stack
-After using Image>Stacks>Tools>Animation Options
Every time "\" is pressed to play the stack a Stack Dump window appears (see below for contents)

"AWT-EventQueue-0" prio=6 id=16 group=main
   java.lang.Thread.State: WAITING
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Object.java:485)
	at java.awt.EventQueue.getNextEvent(EventQueue.java:479)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:236)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

"AWT-Shutdown" prio=5 id=12 group=main
   java.lang.Thread.State: WAITING
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Object.java:485)
	at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:265)
	at java.lang.Thread.run(Thread.java:619)

"AWT-Windows" daemon prio=6 id=13 group=main
   java.lang.Thread.State: RUNNABLE
	at sun.awt.windows.WToolkit.eventLoop(Native Method)
	at sun.awt.windows.WToolkit.run(WToolkit.java:295)
	at java.lang.Thread.run(Thread.java:619)

"Attach Listener" daemon prio=5 id=6 group=system
   java.lang.Thread.State: RUNNABLE

"DestroyJavaVM" prio=5 id=21 group=main
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=8 id=3 group=system
   java.lang.Thread.State: WAITING
	at java.lang.Object.wait(Native Method)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Java2D Disposer" daemon prio=10 id=11 group=system
   java.lang.Thread.State: WAITING
	at java.lang.Object.wait(Native Method)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
	at sun.java2d.Disposer.run(Disposer.java:125)
	at java.lang.Thread.run(Thread.java:619)

"Reference Handler" daemon prio=10 id=2 group=system
   java.lang.Thread.State: WAITING
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Object.java:485)
	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)

"SciJava-473e8cc3-Thread-47" prio=6 id=127 group=main
   java.lang.Thread.State: RUNNABLE
	at java.lang.Thread.dumpThreads(Native Method)
	at java.lang.Thread.getAllStackTraces(Thread.java:1487)
	at org.scijava.plugins.commands.debug.DumpStack.run(DumpStack.java:80)
	at org.scijava.command.CommandModule.run(CommandModule.java:201)
	at org.scijava.module.ModuleRunner.run(ModuleRunner.java:167)
	at org.scijava.module.ModuleRunner.call(ModuleRunner.java:126)
	at org.scijava.module.ModuleRunner.call(ModuleRunner.java:65)
	at org.scijava.thread.DefaultThreadService$2.call(DefaultThreadService.java:164)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)

"SciJava-473e8cc3-Thread-48" prio=6 id=129 group=main
   java.lang.Thread.State: TIMED_WAITING
	at sun.misc.Unsafe.park(Native Method)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
	at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)

"Signal Dispatcher" daemon prio=9 id=5 group=system
   java.lang.Thread.State: RUNNABLE

"Start Animation [\]" prio=1 id=128 group=main
   java.lang.Thread.State: TIMED_WAITING
	at java.lang.Thread.sleep(Native Method)
	at ij.IJ.wait(IJ.java:678)
	at ij.plugin.Animator.startAnimation(Animator.java:180)
	at ij.plugin.Animator.run(Animator.java:48)
	at ij.IJ.runPlugIn(IJ.java:172)
	at ij.Executer.runCommand(Executer.java:131)
	at ij.Executer.run(Executer.java:64)
	at java.lang.Thread.run(Thread.java:619)

"TimerQueue" daemon prio=5 id=24 group=system
   java.lang.Thread.State: WAITING
	at java.lang.Object.wait(Native Method)
	at javax.swing.TimerQueue.run(TimerQueue.java:232)
	at java.lang.Thread.run(Thread.java:619)

"zSelector" prio=6 id=48 group=main
   java.lang.Thread.State: WAITING
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Object.java:485)
	at ij.gui.StackWindow.run(StackWindow.java:209)
	at java.lang.Thread.run(Thread.java:619)

"zSelector" prio=6 id=123 group=main
   java.lang.Thread.State: WAITING
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Object.java:485)
	at ij.gui.StackWindow.run(StackWindow.java:209)
	at java.lang.Thread.run(Thread.java:619)

Information about your version of Java:

  os.arch => amd64
  os.name => Windows 7
  os.version => 6.1
  java.version => 1.6.0_20
  java.vendor => Sun Microsystems Inc.
  java.runtime.name => Java(TM) SE Runtime Environment
  java.runtime.version => 1.6.0_20-b02
  java.vm.name => Java HotSpot(TM) 64-Bit Server VM
  java.vm.version => 16.3-b01
  java.vm.vendor => Sun Microsystems Inc.
  java.vm.info => mixed mode
  java.awt.graphicsenv => sun.awt.Win32GraphicsEnvironment
  java.specification.name => Java Platform API Specification
  java.specification.version => 1.6
  sun.cpu.endian => little
  sun.desktop => windows
  file.separator => \

The up-to-date check says: UP_TO_DATE

Information relevant to JAVA_HOME related problems:

  JAVA_HOME is set to: C:\PROGRA~4\Fiji.app/java/win64/jdk1.6.0_20//jre
  imagej.dir => C:\PROGRA~4\Fiji.app

Information about the version of each plugin:

Activated update sites:
ImageJ: http://update.imagej.net/ (last check:20140712080647)
Fiji: http://pacific.mpi-cbg.de/update/ (last check:20140715100940)

Files not up-to-date:
  ff27659f (LOCAL_ONLY) 20110719184843 jars/Fiji.jar
  efd0b4a7 (OBSOLETE_UNINSTALLED) 20100614001000 jars/clibwrapper_jiio.jar
  d760adf7 (OBSOLETE_UNINSTALLED) 20101214182806 jars/commons-math.jar
  85af6645 (OBSOLETE_UNINSTALLED) 20110119134549 jars/imglib-algorithms.jar
  2727a642 (OBSOLETE_UNINSTALLED) 20110119134548 jars/imglib-ij.jar
  3913aead (OBSOLETE_UNINSTALLED) 20110119134549 jars/imglib-io.jar
  4053be28 (OBSOLETE_UNINSTALLED) 20110119134551 jars/imglib-scripting.jar
  785fd9ee (OBSOLETE_UNINSTALLED) 20110119134537 jars/imglib.jar
  b9040757 (OBSOLETE_UNINSTALLED) 20110119134352 jars/jruby.jar
  8e9a4bd8 (OBSOLETE_UNINSTALLED) 20110119134353 jars/junit-4.5.jar
  62509daf (OBSOLETE_UNINSTALLED) 20100614001000 jars/weka.jar
  290be785 (LOCAL_ONLY) 20101217124405 macros/Unwarp_redchannel image.txt
  ec9f9e6e 20100614001000 macros/grey-squares.ijm
  bc1d6c6e 20100614001000 macros/spirals.txt
  c4583991 (LOCAL_ONLY) 20140408102236 macros/testscript_temp_deleteME.ijm
  f7efa1b3 (LOCAL_ONLY) 20110314142721 misc/headless.jar
  5b9f64df (LOCAL_ONLY) 20140214104952 plugins/Convert_LIF_to_TIFF.class
  1a992dbc (OBSOLETE_UNINSTALLED) 20100614001000 plugins/Daltonize_.jar
  3e7c14cf (LOCAL_ONLY) 20140605204040 plugins/Filters/Anisotropic_Diffusion_2D.class
  a8c14ae3 (LOCAL_ONLY) 20140409165641 plugins/HDF5_.jar
  9cdfe434 20101214182818 plugins/Jython_Scripts.jar
  306c9af0 20101214182807 plugins/Macro_Examples.jar
  3589dfdf (LOCAL_ONLY) 20100408181022 plugins/MultiStackReg1_45.jar
  c32c3597 (LOCAL_ONLY) 20080521101406 plugins/MultiStackReg_.jar
  970c7851 (LOCAL_ONLY) 20130815113254 plugins/ROI/BG_Subtraction_from_ROI.class
  6f058434 (LOCAL_ONLY) 20140212100504 plugins/Radial Profiling/Radial_Profile_Angle_Ext.jar
  0ab9e3b0 (OBSOLETE_UNINSTALLED) 20100614001000 plugins/Record_Screen.jar
  424444d4 (LOCAL_ONLY) 20140428122029 plugins/Region_Growing_Segmentation.jar
  b8e50a7b (OBSOLETE_UNINSTALLED) 20110215125328 plugins/Script_Editor.jar
  4c3e4aee (NOT_INSTALLED) 20110119134407 plugins/Stack_Manipulation.jar
  2f7c1fb1 (LOCAL_ONLY) 20140310193004 plugins/Stack_Sorter.class
  e0122cde (LOCAL_ONLY) 20040909131042 plugins/Stacks - Reducing/Binner_.class
  ab872ecd (LOCAL_ONLY) 20040601145326 plugins/Stacks - Reducing/Delete_slices_after_here.class
  5e51feb8 (LOCAL_ONLY) 20040601145318 plugins/Stacks - Reducing/Delete_slices_before_here.class
  794c108d (LOCAL_ONLY) 20010207115620 plugins/Stacks - Reducing/Slice_Remover.class
  ff504eff (LOCAL_ONLY) 20060627090428 plugins/Stacks - Reducing/Stack_Splitter.class
  25874f3e (LOCAL_ONLY) 20030627131048 plugins/Stacks - Reducing/Substack_Maker.class
  b7a74d8a (LOCAL_ONLY) 20080526103622 plugins/Stacks - Reducing/Substack_Select.jar
  08564324 (LOCAL_ONLY) 20090921122950 plugins/Stacks - T-functions/Grouped_Stack_Projector.class
  3ae569df (LOCAL_ONLY) 20050202153014 plugins/Stacks - T-functions/Intensity_v_Time_Monitor.class
  03bba501 (LOCAL_ONLY) 20050202153404 plugins/Stacks - T-functions/Running_Stack_Projector.class
  1c657c8d (LOCAL_ONLY) 20140305190818 plugins/TIRF_Analysis.class
  5796a251 (LOCAL_ONLY) 20140303144901 plugins/X_Shifter.class
  8c0467d1 (LOCAL_ONLY) 20140120115836 plugins/adaptiveThreshold_win64.jar
  460fd731 (LOCAL_ONLY) 20140303144910 plugins/correctXshift_.jar
  30e408c8 (OBSOLETE_UNINSTALLED) 20110215125326 plugins/loci_tools.jar
  d3260180 (LOCAL_ONLY) 20100614001000 scripts/Record_Desktop.py
  0ea7f8fc (LOCAL_ONLY) 20100614001000 scripts/Record_Window.py
Comment 1 Curtis Rueden 2014-07-18 11:58:38 CDT
Thanks for the report. This bug is my fault, for including that command with a shortcut of "Ctrl+\" when animation already has "\". For better and worse, ImageJ lets you type the Ctrl+<X> shortcuts as just <X>. Very handy most of the time, but causing a clash in cases like this.

I will think about how best to fix it. I would ideally like to keep Dump Stack as Ctrl+\, and _only_ Ctrl+\, _not_ Cmd+\ on OS X nor \ without modifiers. Perhaps we can improve the ImageJ2 plugin framework to enable this.
Comment 2 Johannes Schindelin 2014-07-18 12:34:50 CDT
I believe the culprit lies in https://github.com/imagej/imagej-legacy/blob/daf71a07afe0bdbc02d3294665c290e8e75912b9/src/main/java/net/imagej/legacy/DefaultLegacyHooks.java#L468-L469

There are two problems:

* imagej-legacy it intercepts, but somehow ImageJ 1.x does not get the message that it should not continue to process key events, and then goes on to handle '\'.

* imagej-legacy does not know about the '\' shortcut, so it tries to handle that one first, sees nothing to handle that shortcut, and DWIMs a Control key.

The solution for this bug (and the second bullet point) is to register a dummy handler in the legacy service. This is proper because imagej-legacy needs to bend over to work around ImageJ 1.x' limitations, including knowing about pre-existing keyboard shortcuts.

That does not address the first bullet point, though, and if (and when) it is addressed, the dummy shortcut actually needs to call

    doCommand("Start Animation [\\]");

itself.
Comment 3 Curtis Rueden 2014-08-15 15:25:10 CDT
Sorry for the delay in addressing this. I changed the Dump Stack shortcut to Shift+\:

https://github.com/scijava/scijava-plugins-commands/commit/b56df7df1d38806fb641a169683a86ff300843bb

This is a workaround rather than a "proper" fix as Johannes explains, but at least it will avoid the issue in this specific very annoying case.

We'll release and upload this fix early next week, after some testing.
Comment 4 Curtis Rueden 2014-08-22 12:12:22 CDT
The fix was uploaded a couple of days ago, so backslash (\) should work to animate again, instead of the Dump Stack window appearing.