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

NPE in SGGroup.render()

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: fx1.1
    • Component/s: javafx
    • Labels:
    • Environment:

      Vista, Dual 2.6Ghz Xeon, 6u10, JavaFX 1.0 b53

      Description

      While running the FXTester performance suite (see http://j2se.sfbay.sun.com/web/bin/view/SQEJFC/FXPerformanceSuite) I got an NPE from com.sun.scenario.scenegraph.SGGroup.render(SGGroup.java:219).
      The line in question is:
                  for (int i = 0; i < children.size(); i++) {

      I see that other usages of "children" do a null check, but we don't have one in render().

      This only happens when attempting to run a bogus FXTester testcase (so there likely are no children). It happens between the Glow and InnerShadow effects, as w/ the following command line:

          ~/c/FX1.0/javafx-sdk1.0-b53/bin/javafx -classpath PerfTesting.jar workload.FXTester -dur 10 Bogus -effects Glow InnerShadow

      Output from the test run:
      ...
      Setting up tests for Bogus
      WARNING: Unknown test name: "Bogus"
      WARNING: Unknown test name: "Bogus"
      Bogus+Glow: FPS: 196.67 fps
      Bogus+Glow: FPS: 200.07 fps
      Bogus+Glow: FPS: 200.07 fps
      Bogus+Glow: Average FPS: 198.91 fps
      Unexpected exception caught in MasterTimer.timePulse():
      java.lang.NullPointerException
              at com.sun.scenario.scenegraph.SGGroup.render(SGGroup.java:219)
              at com.sun.scenario.scenegraph.SGNode.render(SGNode.java:925)
              at com.sun.scenario.scenegraph.NodeEffectInput.getImageDataForNode(NodeEffectInput.java:143)
              at com.sun.scenario.scenegraph.NodeEffectInput.filter(NodeEffectInput.java:93)
              at com.sun.scenario.effect.FilterEffect.filter(FilterEffect.java:87)
              at com.sun.scenario.effect.DelegateEffect.filter(DelegateEffect.java:67)
              at com.sun.scenario.effect.Effect.render(Effect.java:212)
              at com.sun.scenario.scenegraph.SGEffect.render(SGEffect.java:137)
              at com.sun.scenario.scenegraph.SGWrapper.render(SGWrapper.java:122)
              at com.sun.scenario.scenegraph.SGGroup.render(SGGroup.java:221)
              at com.sun.scenario.scenegraph.SGGroup.render(SGGroup.java:221)
              at com.sun.scenario.scenegraph.JSGPanel.paintComponent(JSGPanel.java:582)
              at javax.swing.JComponent.paint(Unknown Source)
              at javax.swing.JComponent.paintChildren(Unknown Source)
              at javax.swing.JComponent.paint(Unknown Source)
              at javax.swing.JLayeredPane.paint(Unknown Source)
              at javax.swing.JComponent.paintChildren(Unknown Source)
              at javax.swing.JComponent.paint(Unknown Source)
              at javax.swing.JComponent.paintToOffscreen(Unknown Source)
              at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
              at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
              at javax.swing.RepaintManager.paint(Unknown Source)
              at javax.swing.JComponent._paintImmediately(Unknown Source)
              at javax.swing.JComponent.paintImmediately(Unknown Source)
              at javax.swing.JComponent.paintImmediately(Unknown Source)
              at com.sun.scenario.scenegraph.JSGPanel.repaintDirtyRegions(JSGPanel.java:634)
              at com.sun.scenario.scenegraph.JSGPanelRepainter.repaintAll(JSGPanelRepainter.java:106)
              at com.sun.scenario.scenegraph.JSGPanelRepainter$FrameDisplay.run(JSGPanelRepainter.java:112)
              at com.sun.scenario.animation.AbstractMasterTimer.timePulseImpl(AbstractMasterTimer.java:365)
              at com.sun.scenario.animation.AbstractMasterTimer$MainLoop.run(AbstractMasterTimer.java:247)
              at com.sun.embeddedswing.EmbeddedEventQueue.doPulse(EmbeddedEventQueue.java:470)
              at com.sun.embeddedswing.EmbeddedEventQueue.access$000(EmbeddedEventQueue.java:72)
              at com.sun.embeddedswing.EmbeddedEventQueue$2.run(EmbeddedEventQueue.java:377)
              at java.awt.event.InvocationEvent.dispatch(Unknown Source)
              at java.awt.EventQueue.dispatchEvent(Unknown Source)
              at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
              at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
              at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
              at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
              at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
              at java.awt.EventDispatchThread.run(Unknown Source)
      Bogus+InnerShadow: FPS: 199.00 fps
      Bogus+InnerShadow: FPS: 200.00 fps
      Bogus+InnerShadow: FPS: 200.00 fps
      Bogus+InnerShadow: Average FPS: 199.62 fps

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              bchristi Brent Christian
              Reporter:
              bchristi Brent Christian
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Imported: