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

Texture must be non-null exception when Reflection applied to tiny Nodes

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: P4 P4
    • None
    • 8
    • javafx
    • JDK 8 build b76 32-bit, Windows 7 64-bit

      Getting this exception when a Reflection is added to a really small Node (something on the order of 1x1 pixels, perhaps even 0x0 pixels). Cannot provide a test case at this time as the code that exhibits this isn't really isolated, but removing all reflections solves it. A PerspectiveTransform is also applied (it has the Reflection as input). Without the Reflection as input, this problem does not occur even when the Nodes are rendered at a size so small they disappear from the screen.

      I hope the provided trace is enough to isolate the problem.

      java.lang.IllegalArgumentException: Texture must be non-null
      at com.sun.scenario.effect.impl.prism.PrTexture.<init>(PrTexture.java:36)
      at com.sun.scenario.effect.impl.prism.PrDrawable.<init>(PrDrawable.java:39)
      at com.sun.scenario.effect.impl.prism.ps.PPSDrawable.<init>(PPSDrawable.java:39)
      at com.sun.scenario.effect.impl.prism.ps.PPSDrawable.create(PPSDrawable.java:54)
      at com.sun.scenario.effect.impl.prism.ps.PPSRenderer.createCompatibleImage(PPSRenderer.java:151)
      at com.sun.scenario.effect.impl.prism.ps.PPSRenderer.createCompatibleImage(PPSRenderer.java:62)
      at com.sun.scenario.effect.impl.ImagePool.checkOut(ImagePool.java:164)
      at com.sun.scenario.effect.impl.Renderer.getCompatibleImage(Renderer.java:117)
      at com.sun.scenario.effect.impl.prism.ps.PPSRenderer.getCompatibleImage(PPSRenderer.java:156)
      at com.sun.scenario.effect.impl.prism.ps.PPSRenderer.getCompatibleImage(PPSRenderer.java:62)
      at com.sun.scenario.effect.impl.prism.PrReflectionPeer.filter(PrReflectionPeer.java:43)
      at com.sun.scenario.effect.CoreEffect.filterImageDatas(CoreEffect.java:102)
      at com.sun.scenario.effect.Reflection.filterImageDatas(Reflection.java:38)
      at com.sun.scenario.effect.FilterEffect.filter(FilterEffect.java:176)
      at com.sun.scenario.effect.PerspectiveTransform.filter(PerspectiveTransform.java:198)
      at com.sun.scenario.effect.impl.prism.PrEffectHelper.render(PrEffectHelper.java:162)
      at com.sun.javafx.sg.prism.NGNode$EffectFilter.render(NGNode.java:933)
      at com.sun.javafx.sg.prism.NGNode.renderEffect(NGNode.java:691)
      at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:400)
      at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:67)
      at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1265)
      at com.sun.javafx.sg.prism.NGGroup.renderChildren(NGGroup.java:241)
      at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:207)
      at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:1225)
      at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:623)
      at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:517)
      at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:543)
      at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:398)
      at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:67)
      at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1265)
      at com.sun.javafx.sg.prism.NGGroup.renderChildren(NGGroup.java:241)
      at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:207)
      at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:1225)
      at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:402)
      at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:67)
      at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1265)
      at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:131)
      at com.sun.javafx.tk.quantum.AbstractPainter.paintImpl(AbstractPainter.java:197)
      at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:74)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
      at com.sun.prism.render.RenderJob.run(RenderJob.java:35)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
      at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:112)
      at java.lang.Thread.run(Thread.java:722)

            flar Jim Graham
            jhendrikx John Hendrikx
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported: