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

JVM Crash in sun.dc.pr.PathFiller.setOutputArea - Antialiasing and big screens

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P4 P4
    • None
    • 5.0
    • client-libs
    • 2d
    • x86
    • windows_xp

      FULL PRODUCT VERSION :
      java version "1.4.2_05"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-b04)
      Java HotSpot(TM) Client VM (build 1.4.2_05-b04, mixed mode)

      java version "1.5.0"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
      Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode)


      ADDITIONAL OS VERSION INFORMATION :
      Microsoft Windows XP [Version 5.1.2600]

      A DESCRIPTION OF THE PROBLEM :
      When drawing polygons with precise coordinates with a transformed Graphics in a large screen environment and ANTIALIAS hint on, the JVM crashes.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Compile and execute the attached code.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      No crash, but drawing of a black triangle instead.
      ACTUAL -
      JVM crash.

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      An unexpected exception has been detected in native code outside the VM.
      Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x7245C21
      Function=[Unknown.]
      Library=C:\Program Files\Java\j2re1.4.2_05\bin\dcpr.dll

      NOTE: We are unable to locate the function name symbol for the error
            just occurred. Please refer to release documentation for possible
            reason and solutions.


      Current Java thread:
      at sun.dc.pr.PathFiller.setOutputArea(Native Method)
      at sun.dc.pr.Rasterizer.setOutputArea(Unknown Source)
      at sun.java2d.pipe.DuctusShapeRenderer.renderPath(Unknown Source)
      at sun.java2d.pipe.DuctusShapeRenderer.fill(Unknown Source)
      at sun.java2d.pipe.ValidatePipe.fill(Unknown Source)
      at sun.java2d.SunGraphics2D.fill(Unknown Source)
      at Crash.paint(Crash.java:30)
      at javax.swing.JComponent.paintChildren(Unknown Source)
      - locked <0x100a2038> (a java.awt.Component$AWTTreeLock)
      at javax.swing.JComponent.paint(Unknown Source)
      at javax.swing.JComponent.paintChildren(Unknown Source)
      - locked <0x100a2038> (a java.awt.Component$AWTTreeLock)
      at javax.swing.JComponent.paint(Unknown Source)
      at javax.swing.JLayeredPane.paint(Unknown Source)
      at javax.swing.JComponent.paintChildren(Unknown Source)
      - locked <0x100a2038> (a java.awt.Component$AWTTreeLock)
      at javax.swing.JComponent.paintWithOffscreenBuffer(Unknown Source)
      at javax.swing.JComponent.paintDoubleBuffered(Unknown Source)
      at javax.swing.JComponent.paint(Unknown Source)
      at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
      at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
      at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
      at java.awt.Container.paint(Unknown Source)
      at sun.awt.RepaintArea.paint(Unknown Source)
      at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
      at java.awt.Component.dispatchEventImpl(Unknown Source)
      at java.awt.Container.dispatchEventImpl(Unknown Source)
      at java.awt.Window.dispatchEventImpl(Unknown Source)
      at java.awt.Component.dispatchEvent(Unknown Source)
      at java.awt.EventQueue.dispatchEvent(Unknown Source)
      at java.awt.EventDispatchThread.pumpOneEventForHierarchy(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)

      Dynamic libraries:
      0x00400000 - 0x0040B000 C:\Program Files\Java\j2re1.4.2_05\bin\javaw.exe
      0x7C900000 - 0x7C9B0000 C:\WINDOWS\system32\ntdll.dll
      0x7C800000 - 0x7C8F4000 C:\WINDOWS\system32\kernel32.dll
      0x77DD0000 - 0x77E6B000 C:\WINDOWS\system32\ADVAPI32.dll
      0x77E70000 - 0x77F01000 C:\WINDOWS\system32\RPCRT4.dll
      0x77D40000 - 0x77DD0000 C:\WINDOWS\system32\USER32.dll
      0x77F10000 - 0x77F56000 C:\WINDOWS\system32\GDI32.dll
      0x77C10000 - 0x77C68000 C:\WINDOWS\system32\MSVCRT.dll
      0x76390000 - 0x763AD000 C:\WINDOWS\system32\IMM32.DLL
      0x629C0000 - 0x629C9000 C:\WINDOWS\system32\LPK.DLL
      0x74D90000 - 0x74DFB000 C:\WINDOWS\system32\USP10.dll
      0x08000000 - 0x08139000 C:\Program Files\Java\j2re1.4.2_05\bin\client\jvm.dll
      0x76B40000 - 0x76B6D000 C:\WINDOWS\system32\WINMM.dll
      0x10000000 - 0x10007000 C:\Program Files\Java\j2re1.4.2_05\bin\hpi.dll
      0x00940000 - 0x0094E000 C:\Program Files\Java\j2re1.4.2_05\bin\verify.dll
      0x00950000 - 0x00969000 C:\Program Files\Java\j2re1.4.2_05\bin\java.dll
      0x00970000 - 0x0097D000 C:\Program Files\Java\j2re1.4.2_05\bin\zip.dll
      0x02D60000 - 0x02E72000 C:\Program Files\Java\j2re1.4.2_05\bin\awt.dll
      0x73000000 - 0x73026000 C:\WINDOWS\system32\WINSPOOL.DRV
      0x774E0000 - 0x7761C000 C:\WINDOWS\system32\ole32.dll
      0x03090000 - 0x030E1000 C:\Program Files\Java\j2re1.4.2_05\bin\fontmanager.dll
      0x73760000 - 0x737A9000 C:\WINDOWS\system32\ddraw.dll
      0x73BC0000 - 0x73BC6000 C:\WINDOWS\system32\DCIMAN32.dll
      0x73940000 - 0x73A10000 C:\WINDOWS\system32\D3DIM700.DLL
      0x07190000 - 0x07197000 C:\Program Files\Logitech\MouseWare\System\LgWndHk.dll
      0x755C0000 - 0x755EE000 C:\WINDOWS\system32\msctfime.ime
      0x07230000 - 0x0723B000 C:\Program Files\Common Files\Logitech\Scrolling\LgMsgHk.dll
      0x76080000 - 0x760E5000 C:\WINDOWS\system32\MSVCP60.dll
      0x07240000 - 0x07262000 C:\Program Files\Java\j2re1.4.2_05\bin\dcpr.dll
      0x76C90000 - 0x76CB8000 C:\WINDOWS\system32\imagehlp.dll
      0x59A60000 - 0x59B01000 C:\WINDOWS\system32\DBGHELP.dll
      0x77C00000 - 0x77C08000 C:\WINDOWS\system32\VERSION.dll
      0x76BF0000 - 0x76BFB000 C:\WINDOWS\system32\PSAPI.DLL

      Heap at VM Abort:
      Heap
       def new generation total 576K, used 337K [0x10010000, 0x100b0000, 0x104f0000)
        eden space 512K, 53% used [0x10010000, 0x100547f0, 0x10090000)
        from space 64K, 100% used [0x100a0000, 0x100b0000, 0x100b0000)
        to space 64K, 0% used [0x10090000, 0x10090000, 0x100a0000)
       tenured generation total 1408K, used 126K [0x104f0000, 0x10650000, 0x14010000)
         the space 1408K, 8% used [0x104f0000, 0x1050fa28, 0x1050fc00, 0x10650000)
       compacting perm gen total 4096K, used 3298K [0x14010000, 0x14410000, 0x18010000)
         the space 4096K, 80% used [0x14010000, 0x143488c0, 0x14348a00, 0x14410000)

      Local Time = Tue Dec 07 18:43:04 2004
      Elapsed Time = 0
      #
      # The exception above was detected in native code outside the VM
      #
      # Java VM: Java HotSpot(TM) Client VM (1.4.2_05-b04 mixed mode)
      #
      # An error report file has been saved as hs_err_pid1592.log.
      # Please refer to the file for further information.
      #

      C:\>javac Crash.java
      Note: Crash.java uses or overrides a deprecated API.
      Note: Recompile with -Xlint:deprecation for details.

      C:\>java Crash
      #
      # An unexpected error has been detected by HotSpot Virtual Machine:
      #
      # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d1c5c68, pid=4088, tid=2780
      #
      # Java VM: Java HotSpot(TM) Client VM (1.5.0-b64 mixed mode)
      # Problematic frame:
      # C [dcpr.dll+0x5c68]
      #
      # An error report file with more information is saved as hs_err_pid4088.log
      #
      # If you would like to submit a bug report, please visit:
      # http://java.sun.com/webapps/bugreport/crash.jsp
      #

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      import java.awt.*;
      import java.awt.event.WindowAdapter;
      import java.awt.event.WindowEvent;
      import java.awt.geom.GeneralPath;
      import javax.swing.JFrame;
      import javax.swing.JPanel;
      /*
       * Created on Dec 7, 2004
       *
       * Reproducing Java2D crash when drawing certain polygons with antialias on.
       */
      public class Crash extends JPanel {
          Crash()
          {
              setPreferredSize(new Dimension(1600,1100));
              setDoubleBuffered(true);
          }
          public void paint(Graphics g)
          {
              Graphics2D g2d=(Graphics2D)g;
              g2d.translate(400,100);
              g2d.scale(8,8);
              g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
              GeneralPath p=new GeneralPath();
              p.moveTo(-48,-8.5f);
              p.lineTo(48,-8.5f);
              p.lineTo(47.999985f,8);
              p.closePath();
              g2d.fill(p);
          }
      public static void main(String[] args) {
      Crash c = new Crash();
      JFrame f = new JFrame("");
      f.getContentPane().add(c);
      f.pack();
      f.show();
      }

      }

      ---------- END SOURCE ----------
      ###@###.### 2004-12-08 02:01:06 GMT

            avu Alexey Ushakov
            rmandalasunw Ranjith Mandala (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: