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 |
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 |
Free forum by Nabble | Edit this page |