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

Endless loop in native code of sun.java2d.loops.ScaledBlit

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P4
    • 9
    • 6u4, 7u45, 8, 9
    • client-libs
    • 2d
    • b40
    • x86
    • windows_7

    Backports

      Description

        Attached test program show an endless loop in the native code of sun.java2d.loops.ScaledBlit in EDT. The problem is a consequence of a very large value in a AffineTransform. It occur with all Java 6, Java 7 and Java 8 versions on different Windows systems. Other OS we have not tested.

        Thread [AWT-EventQueue-0] (Suspended)
            owns: Component$AWTTreeLock (id=41)
            ScaledBlit.Scale(SurfaceData, SurfaceData, Composite, Region, int, int, int, int, double, double, double, double) line: not available [native method]
            DrawImage.scaleSurfaceData(SunGraphics2D, Region, SurfaceData, SurfaceData, SurfaceType, SurfaceType, int, int, int, int, double, double, double, double) line: 985
            DrawImage.renderImageScale(SunGraphics2D, Image, Color, int, int, int, int, int, double, double, double, double) line: 642
            DrawImage.tryCopyOrScale(SunGraphics2D, Image, int, int, int, int, Color, int, double[]) line: 307
            DrawImage.transformImage(SunGraphics2D, Image, AffineTransform, int, int, int, int, int, Color) line: 260
            DrawImage.copyImage(SunGraphics2D, Image, int, int, Color) line: 80
            DrawImage.copyImage(SunGraphics2D, Image, int, int, Color, ImageObserver) line: 1011
            ValidatePipe.copyImage(SunGraphics2D, Image, int, int, Color, ImageObserver) line: 186
            SunGraphics2D.drawImage(Image, int, int, Color, ImageObserver) line: 3084
            SunGraphics2D.drawImage(Image, int, int, ImageObserver) line: 3069
            DrawImage.paintComponent(Graphics) line: 57
            DrawImage(JComponent).paint(Graphics) line: 1054
            JPanel(JComponent).paintChildren(Graphics) line: 887
            JPanel(JComponent).paint(Graphics) line: 1063
            JLayeredPane(JComponent).paintChildren(Graphics) line: 887
            JLayeredPane(JComponent).paint(Graphics) line: 1063
            JLayeredPane.paint(Graphics) line: 585
            JRootPane(JComponent).paintChildren(Graphics) line: 887
            JRootPane(JComponent).paintToOffscreen(Graphics, int, int, int, int, int, int) line: 5228
            RepaintManager$PaintManager.paintDoubleBuffered(JComponent, Image, Graphics, int, int, int, int) line: 1512
            RepaintManager$PaintManager.paint(JComponent, JComponent, Graphics, int, int, int, int) line: 1443
            RepaintManager.paint(JComponent, JComponent, Graphics, int, int, int, int) line: 1236
            JRootPane(JComponent).paint(Graphics) line: 1040
            GraphicsCallback$PaintCallback.run(Component, Graphics) line: 39
        GraphicsCallback$PaintCallback(SunGraphicsCallback).runOneComponent(Component, Rectangle, Graphics, Shape, int) line: 78
        GraphicsCallback$PaintCallback(SunGraphicsCallback).runComponents(Component[], Graphics, int) line: 115
            JFrame(Container).paint(Graphics) line: 1967
            JFrame(Window).paint(Graphics) line: 3877
            RepaintManager$3.run() line: 807
            RepaintManager$3.run() line: 784
            AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
        ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
            RepaintManager.paintDirtyRegions(Map<Component,Rectangle>) line: 784
            RepaintManager.paintDirtyRegions() line: 757
            RepaintManager.prePaintDirtyRegions() line: 706
            RepaintManager.access$1000(RepaintManager) line: 62
            RepaintManager$ProcessingRunnable.run() line: 1651
            InvocationEvent.dispatch() line: 251
            EventQueue.dispatchEventImpl(AWTEvent, Object) line: 727
            EventQueue.access$200(EventQueue, AWTEvent, Object) line: 103
            EventQueue$3.run() line: 688
            EventQueue$3.run() line: 686
            AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
        ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
            EventQueue.dispatchEvent(AWTEvent) line: 697
            EventDispatchThread.pumpOneEventForFilters(int) line: 242
            EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 161
            EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 150
            EventDispatchThread.pumpEvents(int, Conditional) line: 146
            EventDispatchThread.pumpEvents(Conditional) line: 138
            EventDispatchThread.run() line: 91

        Attachments

          Issue Links

            Activity

              People

                prr Philip Race
                tyao Ting-Yun Ingrid Yao (Inactive)
                Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: