The sun.java2d.d3d.D3DScreenUpdateManager.runUpdateNow had an infinite wait bug that was supposedly fixed in java 1.6 update 10. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6607230
I have a client, based on their stack trace, seems to be having a similar issue. But this happens on their Window XP machine with java version 1.6 update 18 and java version 1.6 update 20.
I know that the new Direct3D accelerated pipeline doesn't work with all video cards/drivers.
Is this behavior known in the above java versions? and what is the best work around?
Stack Trace
Thread-17: name=AWT-EventQueue-0,id=57,state=RUNNABLE,blockedCount=180,waitedCount=176,native
lockedMonitors:lockedStackDepth=5
at java.awt.Component.hide
'AWT-EventQueue-0' stack trace:
at sun.awt.windows.WGlobalCursorManager.findHeavyweightUnderCursor(native method)
at sun.awt.GlobalCursorManager._updateCursor
at sun.awt.GlobalCursorManager.updateCursorImmediately
at sun.awt.windows.WComponentPeer.updateCursorImmediately
at java.awt.Component.updateCursorImmediately
at java.awt.Component.hide
at java.awt.Window.hide
at java.awt.Dialog.hide
at java.awt.Component.show
at java.awt.Component.setVisible
at java.awt.Window.setVisible
at java.awt.Dialog.setVisible
at javax.swing.JOptionPane$3.propertyChange
at java.beans.PropertyChangeSupport.firePropertyChange
at java.beans.PropertyChangeSupport.firePropertyChange
at java.awt.Component.firePropertyChange
at javax.swing.JOptionPane.setValue
at javax.swing.plaf.basic.BasicOptionPaneUI$ButtonActionListener.actionPerformed
at javax.swing.AbstractButton.fireActionPerformed
at javax.swing.AbstractButton$Handler.actionPerformed
at javax.swing.DefaultButtonModel.fireActionPerformed
at javax.swing.DefaultButtonModel.setPressed
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased
at com.jtattoo.plaf.BaseButtonListener.mouseReleased
at java.awt.Component.processMouseEvent
at javax.swing.JComponent.processMouseEvent
at java.awt.Component.processEvent
at java.awt.Container.processEvent
at java.awt.Component.dispatchEventImpl
at java.awt.Container.dispatchEventImpl
at java.awt.Component.dispatchEvent
at java.awt.LightweightDispatcher.retargetMouseEvent
at java.awt.LightweightDispatcher.processMouseEvent
at java.awt.LightweightDispatcher.dispatchEvent
at java.awt.Container.dispatchEventImpl
at java.awt.Window.dispatchEventImpl
at java.awt.Component.dispatchEvent
at java.awt.EventQueue.dispatchEvent
at java.awt.EventDispatchThread.pumpOneEventForFilters
at java.awt.EventDispatchThread.pumpEventsForFilter
at java.awt.EventDispatchThread.pumpEventsForFilter
at java.awt.Dialog$1.run
at java.awt.Dialog$3.run
at java.security.AccessController.doPrivileged(native method)
at java.awt.Dialog.show
at javax.swing.JOptionPane.showOptionDialog
at com.aqua.client.tileddialog.TradeRequestDialog.nonVwapConfirmation(TradeRequestDialog.java:426)
at com.aqua.client.tileddialog.TradeRequestDialog.actionPerformed(TradeRequestDialog.java:399)
at javax.swing.AbstractButton.fireActionPerformed
at javax.swing.AbstractButton$Handler.actionPerformed
at javax.swing.DefaultButtonModel.fireActionPerformed
at javax.swing.DefaultButtonModel.setPressed
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased
at com.jtattoo.plaf.BaseButtonListener.mouseReleased
at java.awt.Component.processMouseEvent
at javax.swing.JComponent.processMouseEvent
at java.awt.Component.processEvent
at java.awt.Container.processEvent
at java.awt.Component.dispatchEventImpl
at java.awt.Container.dispatchEventImpl
at java.awt.Component.dispatchEvent
at java.awt.LightweightDispatcher.retargetMouseEvent
at java.awt.LightweightDispatcher.processMouseEvent
at java.awt.LightweightDispatcher.dispatchEvent
at java.awt.Container.dispatchEventImpl
at java.awt.Window.dispatchEventImpl
at java.awt.Component.dispatchEvent
at java.awt.EventQueue.dispatchEvent
at java.awt.EventDispatchThread.pumpOneEventForFilters
at java.awt.EventDispatchThread.pumpEventsForFilter
at java.awt.EventDispatchThread.pumpEventsForHierarchy
at java.awt.EventDispatchThread.pumpEvents
at java.awt.EventDispatchThread.pumpEvents
at java.awt.EventDispatchThread.run
Thread-27: name=AWT-Windows,id=12,state=WAITING,lockName=java.lang.Object@1104da7,waitedCount=1
'AWT-Windows' stack trace:
at java.lang.Object.wait(native method)
at java.lang.Object.wait(Object.java:485)
at sun.java2d.d3d.D3DScreenUpdateManager.runUpdateNow
at sun.java2d.d3d.D3DBlitLoops.Blit
at sun.java2d.d3d.D3DSwToSurfaceBlit.Blit
at sun.java2d.pipe.DrawImage.blitSurfaceData
at sun.java2d.pipe.DrawImage.renderImageCopy
at sun.java2d.pipe.DrawImage.copyImage
at sun.java2d.pipe.DrawImage.copyImage
at sun.java2d.pipe.ValidatePipe.copyImage
at sun.java2d.SunGraphics2D.copyImage
at sun.java2d.SunGraphics2D.drawImage
at sun.java2d.SunGraphics2D.drawImage
at java.awt.Component$BltBufferStrategy.showSubRegion
at java.awt.Component$BltSubRegionBufferStrategy.showIfNotLost
at javax.swing.BufferStrategyPaintManager.show
at javax.swing.RepaintManager.show
at javax.swing.SwingPaintEventDispatcher.createPaintEvent
at sun.awt.windows.WComponentPeer.postPaintIfNecessary
at sun.awt.windows.WComponentPeer.handleExpose
at sun.awt.windows.WToolkit.eventLoop(native method)
at sun.awt.windows.WToolkit.run