Skip to content

ImageJ hangs when displaying two Img input widgets #278

Open
@imagejan

Description

@imagejan

To reproduce:

  • Start ImageJ (e.g. up-to-date Fiji, with scijava-common-2.64.0)
  • Open two images (e.g. the Blobs sample image twice: Shift+B, Shift+B)
  • Open the script editor ([)
  • Paste and run the following Groovy script:
    #@ Img in1
    #@ Img in2
    
    println 42
  • For the second input, try to switch to the second image.

ImageJ will get unresponsive and hang in a loop at high CPU load. This is an excerpt from the stack trace recorded on Windows 7:

"SciJava-738d4226-Thread-4786" #4831 prio=6 os_prio=0 tid=0x0000001970bb5800 nid
=0x24b4c in Object.wait() [0x0000001a769ff000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:502)
        at java.awt.EventQueue.invokeAndWait(EventQueue.java:1315)
        - locked <0x00000000909bdb18> (a java.awt.EventQueue$1AWTInvocationLock)

        at java.awt.EventQueue.invokeAndWait(EventQueue.java:1296)
        at org.scijava.thread.DefaultThreadService.invoke(DefaultThreadService.java:117)
        at org.scijava.ui.AbstractUIInputWidget.refreshWidget(AbstractUIInputWidget.java:82)
        at org.scijava.widget.AbstractInputPanel.refresh(AbstractInputPanel.java:89)
        at org.scijava.widget.DefaultWidgetModel$1.run(DefaultWidgetModel.java:177)
        at org.scijava.thread.DefaultThreadService$2.run(DefaultThreadService.java:220)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:748)

"SciJava-738d4226-Thread-4785" #4830 prio=6 os_prio=0 tid=0x0000001970bb5000 nid
=0x6c04 in Object.wait() [0x0000001a767ff000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:502)
        at java.awt.EventQueue.invokeAndWait(EventQueue.java:1315)
        - locked <0x0000000091d2e3f8> (a java.awt.EventQueue$1AWTInvocationLock)

        at java.awt.EventQueue.invokeAndWait(EventQueue.java:1296)
        at org.scijava.thread.DefaultThreadService.invoke(DefaultThreadService.java:117)
        at org.scijava.ui.AbstractUIInputWidget.refreshWidget(AbstractUIInputWidget.java:82)
        at org.scijava.widget.AbstractInputPanel.refresh(AbstractInputPanel.java:89)
        at org.scijava.widget.DefaultWidgetModel$1.run(DefaultWidgetModel.java:177)
        at org.scijava.thread.DefaultThreadService$2.run(DefaultThreadService.java:220)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:748)

"SciJava-738d4226-Thread-4784" #4829 prio=6 os_prio=0 tid=0x0000001970bb4000 nid
=0x243f4 in Object.wait() [0x0000001a765ff000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:502)
        at java.awt.EventQueue.invokeAndWait(EventQueue.java:1315)
        - locked <0x000000008e1e22a0> (a java.awt.EventQueue$1AWTInvocationLock)

        at java.awt.EventQueue.invokeAndWait(EventQueue.java:1296)
        at org.scijava.thread.DefaultThreadService.invoke(DefaultThreadService.java:117)
        at org.scijava.ui.AbstractUIInputWidget.refreshWidget(AbstractUIInputWidget.java:82)
        at org.scijava.widget.AbstractInputPanel.refresh(AbstractInputPanel.java:89)
        at org.scijava.widget.DefaultWidgetModel$1.run(DefaultWidgetModel.java:177)
        at org.scijava.thread.DefaultThreadService$2.run(DefaultThreadService.java:220)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:748)

"SciJava-738d4226-Thread-4783" #4828 prio=6 os_prio=0 tid=0x0000001970bb3800 nid
=0x212dc in Object.wait() [0x0000001a763ff000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:502)
        at java.awt.EventQueue.invokeAndWait(EventQueue.java:1315)
        - locked <0x000000008e3ac4d8> (a java.awt.EventQueue$1AWTInvocationLock)

        at java.awt.EventQueue.invokeAndWait(EventQueue.java:1296)
        at org.scijava.thread.DefaultThreadService.invoke(DefaultThreadService.java:117)
        at org.scijava.ui.AbstractUIInputWidget.refreshWidget(AbstractUIInputWidget.java:82)
        at org.scijava.widget.AbstractInputPanel.refresh(AbstractInputPanel.java:89)
        at org.scijava.widget.DefaultWidgetModel$1.run(DefaultWidgetModel.java:177)
        at org.scijava.thread.DefaultThreadService$2.run(DefaultThreadService.java:220)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:748)

"SciJava-738d4226-Thread-4782" #4827 prio=6 os_prio=0 tid=0x0000001970bb2800 nid
=0x25c24

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions