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

text-shadow CSS property makes WebView unstable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P3
    • Resolution: Cannot Reproduce
    • Affects Version/s: 7u6
    • Fix Version/s: 8
    • Component/s: javafx
    • Environment:

      Windows 7 version 6.1 running on x86

    • Subcomponent:
      web

      Description

      See the attached textShadow.html file. It contains a canvas (in the top left corner) that paints a small box below the mouse cursor (when the mouse cursor moves across the canvas). There is also a SPAN element matched by a rule that contains a text-shadow property.

      When you open textShadow.html in WebView and the mentioned CSS rule is commented out then this page works as expected, i.e., the red box is painted below the mouse cursor.

      When you open textShadow.html in WebView and the CSS rule is not commented out then the canvas is not repainted correctly, i.e., the red box is not painted and the following exceptions are thrown repeatedly:

      java.nio.BufferUnderflowException
      at java.nio.DirectByteBuffer.get(DirectByteBuffer.java:235)
      at java.nio.ByteBuffer.get(ByteBuffer.java:675)
      at com.sun.prism.j2d.J2DTexture$IntArgbPreUpdater.updateFromByteBuffer(J2DTexture.java:410)
      at com.sun.prism.j2d.J2DTexture.update(J2DTexture.java:170)
      at com.sun.prism.j2d.J2DTexture.update(J2DTexture.java:138)
      at com.sun.prism.impl.BaseResourceFactory.createTexture(BaseResourceFactory.java:132)
      at com.sun.prism.impl.BaseResourceFactory.getCachedTexture(BaseResourceFactory.java:100)
      at com.sun.javafx.sg.prism.NGImageView.renderContent(NGImageView.java:115)
      at com.sun.javafx.sg.prism.NodeEffectInput.getImageDataForBoundedNode(NodeEffectInput.java:192)
      at com.sun.javafx.sg.prism.NodeEffectInput.filter(NodeEffectInput.java:85)
      at com.sun.scenario.effect.FilterEffect.filter(FilterEffect.java:167)
      at com.sun.scenario.effect.Offset.filter(Offset.java:161)
      at com.sun.scenario.effect.Merge.filter(Merge.java:147)
      at com.sun.scenario.effect.DelegateEffect.filter(DelegateEffect.java:68)
      at com.sun.scenario.effect.impl.prism.PrEffectHelper.render(PrEffectHelper.java:156)
      at com.sun.javafx.sg.prism.NGNode$EffectFilter.render(NGNode.java:748)
      at com.sun.javafx.sg.prism.NGNode.renderEffect(NGNode.java:494)
      at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:185)
      at com.sun.javafx.sg.prism.NGImageView.doRender(NGImageView.java:97)
      at com.sun.javafx.sg.prism.NGImageView.doRender(NGImageView.java:20)
      at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1145)
      at com.sun.webpane.sg.prism.WCGraphicsPrismContext.render(WCGraphicsPrismContext.java:964)
      at com.sun.webpane.sg.prism.WCGraphicsPrismContext.access$200(WCGraphicsPrismContext.java:47)
      at com.sun.webpane.sg.prism.WCGraphicsPrismContext$7.doPaint(WCGraphicsPrismContext.java:679)
      at com.sun.webpane.sg.prism.WCGraphicsPrismContext$Composite.paint(WCGraphicsPrismContext.java:1228)
      at com.sun.webpane.sg.prism.WCGraphicsPrismContext.drawImage(WCGraphicsPrismContext.java:668)
      at com.sun.webpane.platform.graphics.GraphicsDecoder.drawImage(GraphicsDecoder.java:424)
      at com.sun.webpane.platform.graphics.GraphicsDecoder.decode(GraphicsDecoder.java:166)
      at com.sun.webpane.platform.graphics.WCRenderQueue.decode(WCRenderQueue.java:67)
      at com.sun.webpane.platform.WebPage.paint2GC(WebPage.java:661)
      at com.sun.webpane.platform.WebPage.paint(WebPage.java:640)
      at com.sun.javafx.sg.prism.NGWebView.renderContent(NGWebView.java:71)
      at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:187)
      at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39)
      at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1145)
      at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:204)
      at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:420)
      at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:187)
      at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39)
      at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1145)
      at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:117)
      at com.sun.javafx.tk.quantum.AbstractPainter.paintImpl(AbstractPainter.java:181)
      at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:73)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
      at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
      at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
      at com.sun.prism.render.RenderJob.run(RenderJob.java:37)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:98)
      at java.lang.Thread.run(Thread.java:662)

      java.lang.IllegalStateException: Unbalanced saveState/restoreState
      at com.sun.webpane.sg.prism.WCGraphicsPrismContext.dispose(WCGraphicsPrismContext.java:1475)
      at com.sun.webpane.sg.prism.WCPageBackBufferImpl.disposeGraphics(WCPageBackBufferImpl.java:32)
      at com.sun.webpane.platform.WebPage.paint(WebPage.java:642)
      at com.sun.javafx.sg.prism.NGWebView.renderContent(NGWebView.java:71)
      at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:187)
      at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39)
      at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1145)
      at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:204)
      at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:420)
      at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:187)
      at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39)
      at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1145)
      at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:117)
      at com.sun.javafx.tk.quantum.AbstractPainter.paintImpl(AbstractPainter.java:181)
      at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:73)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
      at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
      at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
      at com.sun.prism.render.RenderJob.run(RenderJob.java:37)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:98)
      at java.lang.Thread.run(Thread.java:662)

        Attachments

          Activity

            People

            • Assignee:
              ant Anton Tarasov
              Reporter:
              jstola Jan Štola
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Imported: