Running Jaikoz 2.3.1 on Linux 2.6.24 with Java 1.6.0_05:
$ uname -a
Linux liverwurst 2.6.24-gentoo-r4-mactel #2 SMP PREEMPT Fri Apr 4 01:49:21 BST 2008 i686 Genuine Intel(R) CPU 1500 @ 2.00GHz GenuineIntel GNU/Linux
$ java -version
java version "1.6.0_05"
Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
Java HotSpot(TM) Server VM (build 10.0-b19, mixed mode)
I’ve been trying to go through a large number of files (~5k), closing groups of them when I’m happy with their tags. After a while, I try to close a file whose id (row number) is apparently larger than the size of some internal structure keeping track of the open files. I get a IndexOutOfBoundsException and can no longer continue.
Stack trace (trying to close file id 4405; status bar claims 4503 open files; not sure where 4353 comes from):
06/04/2008 00.13.52:com.jthink.jaikoz.EventDispatchThreadExceptionHandler:handle:SEVERE: RuntimeException occurred in application
java.lang.IndexOutOfBoundsException: Index: 4405, Size: 4353
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at com.jthink.jaikoz.table.tablemodel.TagDisplayMetaDataModel.getValueAt(TagDisplayMetaDataModel.java:74)
at com.jthink.jaikoz.table.JaikozRowHeaderTable.getValueAt(JaikozRowHeaderTable.java:105)
at javax.swing.JTable.prepareRenderer(JTable.java:5653)
at org.jdesktop.swingx.JXTable.prepareRenderer(JXTable.java:3499)
at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2072)
at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:1974)
at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1770)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:143)
at javax.swing.JComponent.paintComponent(JComponent.java:763)
at javax.swing.JComponent.paint(JComponent.java:1027)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JViewport.paint(JViewport.java:747)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1026)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1026)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1026)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:564)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5122)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:285)
at javax.swing.RepaintManager.paint(RepaintManager.java:1128)
at javax.swing.JComponent._paintImmediately(JComponent.java:5070)
at javax.swing.JComponent.paintImmediately(JComponent.java:4880)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:723)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:679)
at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:659)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:177)
at java.awt.Dialog$1.run(Dialog.java:1045)
at java.awt.Dialog$3.run(Dialog.java:1097)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1095)
at java.awt.Component.show(Component.java:1422)
at java.awt.Component.setVisible(Component.java:1375)
at java.awt.Window.setVisible(Window.java:806)
at java.awt.Dialog.setVisible(Dialog.java:985)
at com.jthink.jaikoz.guielement.AbstractMessagePopupDisplayer.displayDialog(AbstractMessagePopupDisplayer.java:165)
at com.jthink.jaikoz.guielement.ErrorMessagePopupDisplayer.display(ErrorMessagePopupDisplayer.java:48)
at com.jthink.jaikoz.EventDispatchThreadExceptionHandler.handle(EventDispatchThreadExceptionHandler.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.awt.EventDispatchThread.handleException(EventDispatchThread.java:389)
at java.awt.EventDispatchThread.processException(EventDispatchThread.java:295)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:287)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:177)
at java.awt.Dialog$1.run(Dialog.java:1045)
at java.awt.Dialog$3.run(Dialog.java:1097)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1095)
at java.awt.Component.show(Component.java:1422)
at java.awt.Component.setVisible(Component.java:1375)
at java.awt.Window.setVisible(Window.java:806)
at java.awt.Dialog.setVisible(Dialog.java:985)
at com.jthink.jaikoz.guielement.AbstractMessagePopupDisplayer.displayDialog(AbstractMessagePopupDisplayer.java:165)
at com.jthink.jaikoz.guielement.ErrorMessagePopupDisplayer.display(ErrorMessagePopupDisplayer.java:48)
at com.jthink.jaikoz.EventDispatchThreadExceptionHandler.handle(EventDispatchThreadExceptionHandler.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.awt.EventDispatchThread.handleException(EventDispatchThread.java:389)
at java.awt.EventDispatchThread.processException(EventDispatchThread.java:295)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:287)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)