Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6331315

REGRESSION: Swings painting code should better handle painting from multiple threads better

XMLWordPrintable

    • b32
    • 6
    • b58
    • x86
    • windows_xp

      While Swing has never claimed to support painting from mutliple threads, at the same time, there appear to be a handful of apps relying on this behavior.
      Here are problematic traces we've seen:

          Exception in thread "Thread-3" java.lang.NullPointerException
          at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:276)
          at javax.swing.RepaintManager.paint(RepaintManager.java:1055)
          at javax.swing.JComponent._paintImmediately(JComponent.java:5042)
          at javax.swing.JComponent.paintImmediately(JComponent.java:4860)
          at javax.swing.JComponent.paintImmediately(JComponent.java:4872)
          at com.sun.pdasync.SyncUI.SyncTabs.updateProgress(SyncTabs.java:142)
          at com.sun.pdasync.SyncUI.PDASyncDlgUI.updateProgress(PDASyncDlgUI.java:256)
          at com.sun.pdasync.SyncUI.PDASyncDlgUI.updateViewer(PDASyncDlgUI.java:348)
          at com.sun.pdasync.Logger.Logger.fireEvent(Logger.java:123)
          at com.sun.pdasync.Logger.Logger.notifyListeners(Logger.java:60)
          at com.sun.pdasync.Logger.Logger.doProgressUpdate(Logger.java:182)
          at com.sun.pdasync.HotSync.HotSync.CreateTaskMaster(HotSync.java:894)
          at com.sun.pdasync.HotSync.HotSync.PreLocalSync(HotSync.java:2331)
          at com.sun.pdasync.HotSync.HotSync.LocalSync(HotSync.java:3007)
          at com.sun.pdasync.HotSync.HotSync.PerformHotSync(HotSync.java:1198)
          at com.sun.pdasync.HotSync.HotSync.connectionSniffer(HotSync.java:1695)
          at com.sun.pdasync.HotSync.HotSync.pollConnection(HotSync.java:1728)
          at com.sun.pdasync.CommPort.SerialPortCommunicator.fireEvent(SerialPortCommunicator.java:130)
          at com.sun.pdasync.CommPort.SerialPortCommunicator.serialEvent(SerialPortCommunicator.java:422)
          at com.sun.comm.SolarisSerial$SSCheckStatusThread.RaiseEvent(SolarisSerial.java:585)
          at com.sun.comm.SolarisSerial$SSCheckStatusThread.run(SolarisSerial.java:432)

      -----
          Exception in thread "Thread-3" java.lang.NullPointerException
          at javax.swing.JComponent.getComponentGraphics(JComponent.java:708)
          at javax.swing.JComponent.paint(JComponent.java:959)
          at javax.swing.JComponent.paintToOffscreen(JComponent.java:5094)
          at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:279)
          at javax.swing.RepaintManager.paint(RepaintManager.java:1055)
          at javax.swing.JComponent._paintImmediately(JComponent.java:5042)
          at javax.swing.JComponent.paintImmediately(JComponent.java:4860)
          at javax.swing.JComponent.paintImmediately(JComponent.java:4872)
          at com.sun.pdasync.SyncUI.SyncTabs.updateProgress(SyncTabs.java:142)
          at com.sun.pdasync.SyncUI.PDASyncDlgUI.updateProgress(PDASyncDlgUI.java:256)
          at com.sun.pdasync.SyncUI.PDASyncDlgUI.updateViewer(PDASyncDlgUI.java:348)
          at com.sun.pdasync.Logger.Logger.fireEvent(Logger.java:123)
          at com.sun.pdasync.Logger.Logger.notifyListeners(Logger.java:60)
          at com.sun.pdasync.Logger.Logger.doProgressUpdate(Logger.java:182)
          at com.sun.pdasync.HotSync.HotSync.DoSync(HotSync.java:2943)
          at com.sun.pdasync.HotSync.HotSync.DoConduitSync(HotSync.java:2977)
          at com.sun.pdasync.HotSync.HotSync.LocalSync(HotSync.java:3012)
          at com.sun.pdasync.HotSync.HotSync.PerformHotSync(HotSync.java:1198)
          at com.sun.pdasync.HotSync.HotSync.connectionSniffer(HotSync.java:1695)
          at com.sun.pdasync.HotSync.HotSync.pollConnection(HotSync.java:1728)
          at com.sun.pdasync.CommPort.SerialPortCommunicator.fireEvent(SerialPortCommunicator.java:130)
          at com.sun.pdasync.CommPort.SerialPortCommunicator.serialEvent(SerialPortCommunicator.java:422)
          at com.sun.comm.SolarisSerial$SSCheckStatusThread.RaiseEvent(SolarisSerial.java:585)
          at com.sun.comm.SolarisSerial$SSCheckStatusThread.run(SolarisSerial.java:432)

            svioletsunw Scott Violet (Inactive)
            svioletsunw Scott Violet (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: