views:

21

answers:

0

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