Possible bug in Multi-point tool

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Possible bug in Multi-point tool

AAM71
Dear colleagues,

I believe I have found a bug in multi-point tool. Or at least it behaves not as I expected. When I use only 1 counter (which are possible to choose by double clicking on the tool) then everything goes OK - I can select different markers, colors, sizes. However, when I try to use several counters then several things happen:

1) Whichever color I choose initially (counter 0 by default) then after selecting the next counter (1, 2 or else) colors change to predefined color scheme (0 - yellow, 1 - magenta, 2 - cyan, 3 - orange, 4 - green, 5 - blue etc. ).   So, then there is no possibility to change colors for any counters after that.

2) If I remove Multi-point tool points all at once (not by manual alt-click) by using other tool selection and clicking, then the next time I start Multi-point tool counter 0 cannot be started as it automatically switches back to the last counter I use on previous image. So, if I closed previous image using counter 3 then on the next image even if I choose counter 0 - it auto switches to counter 3.

3) If in this case I try to change misbehaving counter back to counter 0 and begin counting using clicks, then either of 2 things may happen:

    - IJ throws out 1 of 2 exceptions (attached below) or
    - after some points appearing for counter 0 program tool hangs - clicks do not produce points any more. In this case, deselecting/selecting Multi-point tool helps and it begins to work again.

System:
I have tried several images including ImageJ "Samples" ("Blobs", Boats). ImageJ version is 1.50i on Windows 7 64-bit, tried on two different computers.

Sincerely,
Alex



ImageJ exceptions:
=====================
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 32
    at ij.gui.PointRoi.drawPoint(PointRoi.java:183)
    at ij.gui.PointRoi.draw(PointRoi.java:162)
    at ij.gui.ImageCanvas.drawRoi(ImageCanvas.java:265)
    at ij.gui.ImageCanvas.paintDoubleBuffered(ImageCanvas.java:521)
    at ij.gui.ImageCanvas.paint(ImageCanvas.java:208)
    at ij.gui.ImageCanvas.update(ImageCanvas.java:197)
    at sun.awt.RepaintArea.updateComponent(RepaintArea.java:239)
    at sun.awt.RepaintArea.paint(RepaintArea.java:216)
    at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:310)
    at java.awt.Component.dispatchEventImpl(Component.java:4728)
    at java.awt.Component.dispatchEvent(Component.java:4482)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
    at java.awt.EventQueue.access$000(EventQueue.java:85)
    at java.awt.EventQueue$1.run(EventQueue.java:603)
    at java.awt.EventQueue$1.run(EventQueue.java:601)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
    at java.awt.EventQueue$2.run(EventQueue.java:617)
    at java.awt.EventQueue$2.run(EventQueue.java:615)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    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)

===================
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 8
    at ij.gui.PointRoi.drawPoint(PointRoi.java:183)
    at ij.gui.PointRoi.draw(PointRoi.java:162)
    at ij.gui.ImageCanvas.drawRoi(ImageCanvas.java:265)
    at ij.gui.ImageCanvas.paintDoubleBuffered(ImageCanvas.java:521)
    at ij.gui.ImageCanvas.paint(ImageCanvas.java:208)
    at ij.gui.ImageCanvas.update(ImageCanvas.java:197)
    at sun.awt.RepaintArea.updateComponent(RepaintArea.java:239)
    at sun.awt.RepaintArea.paint(RepaintArea.java:216)
    at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:310)
    at java.awt.Component.dispatchEventImpl(Component.java:4728)
    at java.awt.Component.dispatchEvent(Component.java:4482)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
    at java.awt.EventQueue.access$000(EventQueue.java:85)
    at java.awt.EventQueue$1.run(EventQueue.java:603)
    at java.awt.EventQueue$1.run(EventQueue.java:601)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
    at java.awt.EventQueue$2.run(EventQueue.java:617)
    at java.awt.EventQueue$2.run(EventQueue.java:615)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    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)

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: Possible bug in Multi-point tool

Rasband, Wayne (NIH/NIMH) [E]
> On Jun 12, 2016, at 6:21 PM, Aleksandr Mironov <[hidden email]> wrote:
>
> Dear colleagues,
>
> I believe I have found a bug in multi-point tool. Or at least it behaves not as I expected. When I use only 1 counter (which are possible to choose by double clicking on the tool) then everything goes OK - I can select different markers, colors, sizes. However, when I try to use several counters then several things happen:
>
> 1) Whichever color I choose initially (counter 0 by default) then after selecting the next counter (1, 2 or else) colors change to predefined color scheme (0 - yellow, 1 - magenta, 2 - cyan, 3 - orange, 4 - green, 5 - blue etc. ).   So, then there is no possibility to change colors for any counters after that.

There is currently no way to change marker colors when using more than one counter.

> 2) If I remove Multi-point tool points all at once (not by manual alt-click) by using other tool selection and clicking, then the next time I start Multi-point tool counter 0 cannot be started as it automatically switches back to the last counter I use on previous image. So, if I closed previous image using counter 3 then on the next image even if I choose counter 0 - it auto switches to counter 3.

This bug should be fixed in the latest ImageJ daily build (v1.51d4).

-wayne

> 3) If in this case I try to change misbehaving counter back to counter 0 and begin counting using clicks, then either of 2 things may happen:
>
>    - IJ throws out 1 of 2 exceptions (attached below) or
>    - after some points appearing for counter 0 program tool hangs - clicks do not produce points any more. In this case, deselecting/selecting Multi-point tool helps and it begins to work again.
>
> System:
> I have tried several images including ImageJ "Samples" ("Blobs", Boats). ImageJ version is 1.50i on Windows 7 64-bit, tried on two different computers.
>
> Sincerely,
> Alex
>
>
>
> ImageJ exceptions:
> =====================
> Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 32
>    at ij.gui.PointRoi.drawPoint(PointRoi.java:183)
>    at ij.gui.PointRoi.draw(PointRoi.java:162)
>    at ij.gui.ImageCanvas.drawRoi(ImageCanvas.java:265)
>    at ij.gui.ImageCanvas.paintDoubleBuffered(ImageCanvas.java:521)
>    at ij.gui.ImageCanvas.paint(ImageCanvas.java:208)
>    at ij.gui.ImageCanvas.update(ImageCanvas.java:197)
>    at sun.awt.RepaintArea.updateComponent(RepaintArea.java:239)
>    at sun.awt.RepaintArea.paint(RepaintArea.java:216)
>    at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:310)
>    at java.awt.Component.dispatchEventImpl(Component.java:4728)
>    at java.awt.Component.dispatchEvent(Component.java:4482)
>    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
>    at java.awt.EventQueue.access$000(EventQueue.java:85)
>    at java.awt.EventQueue$1.run(EventQueue.java:603)
>    at java.awt.EventQueue$1.run(EventQueue.java:601)
>    at java.security.AccessController.doPrivileged(Native Method)
>    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
>    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
>    at java.awt.EventQueue$2.run(EventQueue.java:617)
>    at java.awt.EventQueue$2.run(EventQueue.java:615)
>    at java.security.AccessController.doPrivileged(Native Method)
>    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
>    at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
>    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
>    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)
>
> ===================
> Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 8
>    at ij.gui.PointRoi.drawPoint(PointRoi.java:183)
>    at ij.gui.PointRoi.draw(PointRoi.java:162)
>    at ij.gui.ImageCanvas.drawRoi(ImageCanvas.java:265)
>    at ij.gui.ImageCanvas.paintDoubleBuffered(ImageCanvas.java:521)
>    at ij.gui.ImageCanvas.paint(ImageCanvas.java:208)
>    at ij.gui.ImageCanvas.update(ImageCanvas.java:197)
>    at sun.awt.RepaintArea.updateComponent(RepaintArea.java:239)
>    at sun.awt.RepaintArea.paint(RepaintArea.java:216)
>    at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:310)
>    at java.awt.Component.dispatchEventImpl(Component.java:4728)
>    at java.awt.Component.dispatchEvent(Component.java:4482)
>    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
>    at java.awt.EventQueue.access$000(EventQueue.java:85)
>    at java.awt.EventQueue$1.run(EventQueue.java:603)
>    at java.awt.EventQueue$1.run(EventQueue.java:601)
>    at java.security.AccessController.doPrivileged(Native Method)
>    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
>    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
>    at java.awt.EventQueue$2.run(EventQueue.java:617)
>    at java.awt.EventQueue$2.run(EventQueue.java:615)
>    at java.security.AccessController.doPrivileged(Native Method)
>    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
>    at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
>    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
>    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)
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: Possible bug in Multi-point tool

chenji36
Hi all,

I also have this issue - just downloaded a new version of Image J today (1.50i, August 29), does anyone know a fix to this? I find that toggling between other tools and going back to the multi point tool does not "unfreeze" imageJ and I cannot make additional selections after switching between the two different colours of the counter.

I tried to save my current work and to reopen the image, however, I am also unable to save the file, and this is the error message:

ImageJ 1.50i; Java 1.6.0_24 [64-bit]; Windows 7 6.1; 14MB of 5712MB (<1%)
 
java.lang.ArrayIndexOutOfBoundsException: 8
        at ij.gui.PointRoi.getCounters(PointRoi.java:497)
        at ij.io.RoiEncoder.write(RoiEncoder.java:147)
        at ij.io.RoiEncoder.write(RoiEncoder.java:56)
        at ij.io.RoiEncoder.saveAsByteArray(RoiEncoder.java:71)
        at ij.io.FileSaver.saveAsTiff(FileSaver.java:109)
        at ij.io.FileSaver.saveAsTiff(FileSaver.java:92)
        at ij.plugin.filter.Writer.run(Writer.java:20)
        at ij.plugin.filter.PlugInFilterRunner.processOneImage(PlugInFilterRunner.java:265)
        at ij.plugin.filter.PlugInFilterRunner.<init>(PlugInFilterRunner.java:114)
        at ij.IJ.runPlugIn(IJ.java:188)
        at ij.Executer.runCommand(Executer.java:137)
        at ij.Executer.run(Executer.java:66)
        at java.lang.Thread.run(Thread.java:662)


Reply | Threaded
Open this post in threaded view
|

Re: Possible bug in Multi-point tool

Rasband, Wayne (NIH/NIMH) [E]
> On Aug 29, 2016, at 2:43 PM, chenji36 <[hidden email]> wrote:
>
> Hi all,
>
> I also have this issue - just downloaded a new version of Image J today
> (1.50i, August 29), does anyone know a fix to this? I find that toggling
> between other tools and going back to the multi point tool does not
> "unfreeze" imageJ and I cannot make additional selections after switching
> between the two different colours of the counter.
>
> I tried to save my current work and to reopen the image, however, I am also
> unable to save the file, and this is the error message:

Try updating to the current version of ImageJ (1.51f) using the Help>Update ImageJ command.

-wayne


> ImageJ 1.50i; Java 1.6.0_24 [64-bit]; Windows 7 6.1; 14MB of 5712MB (<1%)
>
> java.lang.ArrayIndexOutOfBoundsException: 8
> at ij.gui.PointRoi.getCounters(PointRoi.java:497)
> at ij.io.RoiEncoder.write(RoiEncoder.java:147)
> at ij.io.RoiEncoder.write(RoiEncoder.java:56)
> at ij.io.RoiEncoder.saveAsByteArray(RoiEncoder.java:71)
> at ij.io.FileSaver.saveAsTiff(FileSaver.java:109)
> at ij.io.FileSaver.saveAsTiff(FileSaver.java:92)
> at ij.plugin.filter.Writer.run(Writer.java:20)
> at
> ij.plugin.filter.PlugInFilterRunner.processOneImage(PlugInFilterRunner.java:265)
> at ij.plugin.filter.PlugInFilterRunner.<init>(PlugInFilterRunner.java:114)
> at ij.IJ.runPlugIn(IJ.java:188)
> at ij.Executer.runCommand(Executer.java:137)
> at ij.Executer.run(Executer.java:66)
> at java.lang.Thread.run(Thread.java:662)
>
>
>
>
>
>
> --
> View this message in context: http://imagej.1557.x6.nabble.com/Possible-bug-in-Multi-point-tool-tp5016631p5017132.html
> Sent from the ImageJ mailing list archive at Nabble.com.
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: Possible bug in Multi-point tool

chenji36
Hi Wayne,

Thanks for getting back to me, I updated my ImageJ to the most recent version, and was able to count a few images fine before this issue popped up again - counter does not register the additional clicks after I switch between counter categories. Tried saving what I had at the moment, but got this error message:

ImageJ 1.51f; Java 1.6.0_24 [64-bit]; Windows 7 6.1; 25MB of 5712MB (<1%)
 
java.lang.ArrayIndexOutOfBoundsException: 142
        at ij.gui.PointRoi.getCounters(PointRoi.java:511)
        at ij.io.RoiEncoder.write(RoiEncoder.java:147)
        at ij.io.RoiEncoder.write(RoiEncoder.java:56)
        at ij.io.RoiEncoder.saveAsByteArray(RoiEncoder.java:71)
        at ij.io.FileSaver.saveAsTiff(FileSaver.java:109)
        at ij.io.FileSaver.saveAsTiff(FileSaver.java:92)
        at ij.plugin.filter.Writer.run(Writer.java:20)
        at ij.plugin.filter.PlugInFilterRunner.processOneImage(PlugInFilterRunner.java:265)
        at ij.plugin.filter.PlugInFilterRunner.<init>(PlugInFilterRunner.java:114)
        at ij.IJ.runPlugIn(IJ.java:189)
        at ij.Executer.runCommand(Executer.java:137)
        at ij.Executer.run(Executer.java:66)
        at java.lang.Thread.run(Thread.java:662)

It looks like the same issue as before?

Jenny