(no subject)

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

(no subject)

Mohamed Tleis
Hello folks,

I wrote a small program in java to process a set of 14 images, when I run
my program it seems to process my images well, but I am getting for 5 of
the 14 images the following Exception. The Weird thing is that all the
images are identical in size and type. Any one came across a similar issue?

Exception in thread "AWT-EventQueue-0"
java.lang.ArrayIndexOutOfBoundsException: 4 >= 4
at java.util.Vector.elementAt(Vector.java:427)
at java.awt.List.getItemImpl(List.java:292)
at java.awt.List.getItem(List.java:284)
at ij.gui.ImageCanvas.drawAllROIs(ImageCanvas.java:208)
at ij.gui.ImageCanvas.paintDoubleBuffered(ImageCanvas.java:386)
at ij.gui.ImageCanvas.paint(ImageCanvas.java:139)
at ij.gui.ImageCanvas.update(ImageCanvas.java:131)
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: 4 >= 4
at java.util.Vector.elementAt(Vector.java:427)
at java.awt.List.getItemImpl(List.java:292)
at java.awt.List.getItem(List.java:284)
at ij.gui.ImageCanvas.drawAllROIs(ImageCanvas.java:208)
at ij.gui.ImageCanvas.paintDoubleBuffered(ImageCanvas.java:386)
at ij.gui.ImageCanvas.paint(ImageCanvas.java:139)
at ij.gui.ImageCanvas.update(ImageCanvas.java:131)
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)


best Regards,
Mohamed tleis
Reply | Threaded
Open this post in threaded view
|

(no subject)

Michael Schmid
Hi Mohammed,

it seems that you are either modifying the list of ROIs or closing  
the ROI Manager while the image is repainted.
Repainting is asynchronous in Java, so it may happen earlier or  
later; this explains why the problem is not reproducible.

Repainting may be due to a call to updateAndDraw() of the ImagePlus,  
or because the window with the ROIs from the ROI manager gets into  
the foreground (also, if another window that was hiding part of it  
has ben displaced or closed).

If you can't prevent repainting of the image, maybe you can avoid the  
'show all' mode of the ROI manager or make the window invisible while  
the macro is running.

Michael
________________________________________________________________

On 19 Dec 2011, at 12:01, Mohammed Tlais wrote:

> Hello folks,
>
> I wrote a small program in java to process a set of 14 images, when  
> I run
> my program it seems to process my images well, but I am getting for  
> 5 of
> the 14 images the following Exception. The Weird thing is that all the
> images are identical in size and type. Any one came across a  
> similar issue?
>
> Exception in thread "AWT-EventQueue-0"
> java.lang.ArrayIndexOutOfBoundsException: 4 >= 4
> at java.util.Vector.elementAt(Vector.java:427)
> at java.awt.List.getItemImpl(List.java:292)
> at java.awt.List.getItem(List.java:284)
> at ij.gui.ImageCanvas.drawAllROIs(ImageCanvas.java:208)
> at ij.gui.ImageCanvas.paintDoubleBuffered(ImageCanvas.java:386)
> at ij.gui.ImageCanvas.paint(ImageCanvas.java:139)
> at ij.gui.ImageCanvas.update(ImageCanvas.java:131)
> 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: 4 >= 4
> at java.util.Vector.elementAt(Vector.java:427)
> at java.awt.List.getItemImpl(List.java:292)
> at java.awt.List.getItem(List.java:284)
> at ij.gui.ImageCanvas.drawAllROIs(ImageCanvas.java:208)
> at ij.gui.ImageCanvas.paintDoubleBuffered(ImageCanvas.java:386)
> at ij.gui.ImageCanvas.paint(ImageCanvas.java:139)
> at ij.gui.ImageCanvas.update(ImageCanvas.java:131)
> 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)
>
>
> best Regards,
> Mohamed tleis