Problem with JRE1.5 but not JRE1.4
I have a program, that compiles and runs well on Java 1.4 but has serious trouble on Java 1.5.
I will click a button and then the GUI will freeze for 10 seconds, with the CPU at 60%. It shouldn't be doing anything intensive, just updating a couple of JLists. The problem is very inconsistant. I will remove parts of the code, and the problem happens on some other action.
I've tried this on linux and windows, with the same results. 1.4 good, 1.5 bad. Here is a dump (after sending it a sig 3) while it was in this frozen state. It looks like its waiting for something... what!
Any pointers will be appreciated....
Michael
Full thread dump Java HotSpot(TM) Client VM (1.5.0-b64 mixed mode, sharing):
"DestroyJavaVM" prio=1 tid=0xf3b00a68 nid=0x29c3 waiting on condition [0x00000000..0xfeffd260]
"TimerQueue" daemon prio=1 tid=0x083eaa28 nid=0x29d5 in Object.wait() [0x02b80000..0x02b80480]
at java.lang.Object.wait(Native Method)
- waiting on <0xcac5a100> (a javax.swing.TimerQueue)
at javax.swing.TimerQueue.run(TimerQueue.java:233)
- locked <0xcac5a100> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Thread.java:595)
"AWT-EventQueue-0" prio=1 tid=0x083d5b78 nid=0x29ce runnable [0x01323000..0x01324780]
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:99)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:393)
at java.lang.StringBuffer.append(StringBuffer.java:225)
- locked <0xca55ffa8> (a java.lang.StringBuffer)
at Map.toString(Unknown Source)
at TabListCellRenderer.getListCellRendererComponent(Unknown Source)
at javax.swing.plaf.basic.BasicListUI.updateLayoutState(BasicListUI.java:1134)
at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(BasicListUI.java:1084)
at javax.swing.plaf.basic.BasicListUI$Handler.valueChanged(BasicListUI.java:2200)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:187)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:167)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:214)
at javax.swing.DefaultListSelectionModel.insertIndexInterval(DefaultListSelectionModel.java:566)
at javax.swing.plaf.basic.BasicListUI$Handler.intervalAdded(BasicListUI.java:2158)
at javax.swing.AbstractListModel.fireIntervalAdded(AbstractListModel.java:130)
at javax.swing.DefaultListModel.addElement(DefaultListModel.java:348)
at BLS_ES202.UpdateCodeList(Unknown Source)
at BLS_ES202.NAICSFilterComboBoxActionPerformed(Unknown Source)
at BLS_ES202.access$500(Unknown Source)
at BLS_ES202$6.actionPerformed(Unknown Source)
at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1197)
at javax.swing.JComboBox.contentsChanged(JComboBox.java:1268)
at javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:100)
at javax.swing.DefaultComboBoxModel.setSelectedItem(DefaultComboBoxModel.java:88)
at javax.swing.DefaultComboBoxModel.removeElementAt(DefaultComboBoxModel.java:140)
at javax.swing.DefaultComboBoxModel.removeElement(DefaultComboBoxModel.java:156)
at javax.swing.JComboBox.removeItem(JComboBox.java:718)
at com.heterodyne.gui.MemComboBox.add(Unknown Source)
at BLS_ES202.BtnSelectCodeActionPerformed(Unknown Source)
at BLS_ES202.access$700(Unknown Source)
at BLS_ES202$8.actionPerformed(Unknown Source)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1766)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
"AWT-Shutdown" prio=1 tid=0x083cfd48 nid=0x29cd in Object.wait() [0x017f3000..0x017f3700]
at java.lang.Object.wait(Native Method)
- waiting on <0xcaa026d8> (a java.lang.Object)
at java.lang.Object.wait(Object.java:474)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
- locked <0xcaa026d8> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:595)
"AWT-XAWT" daemon prio=1 tid=0x083c7418 nid=0x29cc runnable [0x04681000..0x04681680]
at sun.awt.X11.XToolkit.waitForEvents(Native Method)
at sun.awt.X11.XToolkit.run(XToolkit.java:463)
at sun.awt.X11.XToolkit.run(XToolkit.java:438)
at java.lang.Thread.run(Thread.java:595)
"Java2D Disposer" daemon prio=1 tid=0x083bb430 nid=0x29cb in Object.wait() [0x03f60000..0x03f60600]
at java.lang.Object.wait(Native Method)
- waiting on <0xcaa027f8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0xcaa027f8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at sun.java2d.Disposer.run(Disposer.java:107)
at java.lang.Thread.run(Thread.java:595)
"Low Memory Detector" daemon prio=1 tid=0x080a0790 nid=0x29c9 runnable [0x00000000..0x00000000]
"CompilerThread0" daemon prio=1 tid=0x0809f2e0 nid=0x29c8 waiting on condition [0x00000000..0x00531e68]
"Signal Dispatcher" daemon prio=1 tid=0x0809e2c0 nid=0x29c7 waiting on condition [0x00000000..0x00000000]
"Finalizer" daemon prio=1 tid=0x0809a690 nid=0x29c6 in Object.wait() [0x00406000..0x00406780]
at java.lang.Object.wait(Native Method)
- waiting on <0xca9db230> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0xca9db230> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=1 tid=0x080987d0 nid=0x29c5 in Object.wait() [0x00311000..0x00311700]
at java.lang.Object.wait(Native Method)
- waiting on <0xca9db2b0> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:474)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0xca9db2b0> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=1 tid=0x08095d10 nid=0x29c4 runnable
"VM Periodic Task Thread" prio=1 tid=0x080a1cf8 nid=0x29ca waiting on condition

