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

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

    XMLWordPrintable

    Details

    • Subcomponent:
    • Introduced In Build:
      b32
    • Introduced In Version:
      6
    • Resolved In Build:
      b58
    • CPU:
      x86
    • OS:
      windows_xp

      Description

      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)

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: