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

j2sdk1.3,1 .3.1, 1.4-beta3 crashed in java2D at sun.dc.pr.PathFiller.setOutputAr

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: P4 P4
    • None
    • 1.4.0, 1.4.2
    • client-libs
    • 2d
    • x86
    • linux, windows_2000

      Name: jk109818 Date: 12/21/2001


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



      Running a map application that reads oracle spatial geometries from a database
      and then uses java2D to draw the geometries in a JPanel.

      Have one thread that loads data (not the AWT-thread). The load thread also draws
      to the map using getGraphics to get the Graphics object for the JPanel.

      The method that crashes the jvm seems to be: this one:

          /** Fill the interior of a polygon and draw an outline around it. */
          private void fillPoly (Graphics2D g2, int otype, GeneralPath poly, Color c, Color c2, boolean dofill) {
      if (otype != -2) {
      if (dofill && c.getAlpha () > 0) {
      g2.setComposite (AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
      (float)(c.getAlpha () / 255.0)));
      g2.fill (poly); // CRASHES HERE SOMETIMES
      }
      if (c2 != null) {
      g2.setColor (c2);
      g2.setComposite (AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
      (float)(c2.getAlpha () / 255.0)));
      }
      }
      g2.draw (poly);
          }


        From the stacktrace we can see that the jvm crashes on a call to fill with an
      GeneralPath as argument.

      This application has two modes:"draw while loading" and "draw when finished
      loading". I have only been able to trigger this bug in the "draw while loading"
      mode. In this mode drawing is done like this:

          protected void drawComponent (GeometryComponent gc, Color c, Color c2) {
      if (mapgraphics == null) {
      mapgraphics = map.getGraphics ();
      map.setUpTransform (mapgraphics);
      }
      map.drawObject (gc, map.getCoordBounds (), map.getSx (),
      map.getSize (), mapgraphics, c, c2);
          }

      the map variable is a subclass of JPanel. the call to getSx () returns a scale
      value that is used when setting up the transformation for the map.

      I have not yet found any specific GeneralPath that crashes the jvm it seems to
      be a race/thread condition in the native code.


      full stack trace:
      An irrecoverable stack overflow has occurred.

      An unexpected exception has been detected in native code outside the VM.
      Unexpected Signal : 11 occurred at PC=0x4CCDED95
      Function=(null)+0x4CCDED95
      Library=/usr/local/j2sdk1.4.0/jre/lib/i386/libdcpr.so

      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(Rasterizer.java:635)
              at
      sun.java2d.pipe.DuctusShapeRenderer.renderPath(DuctusShapeRenderer.java:79)
              at sun.java2d.pipe.DuctusShapeRenderer.fill(DuctusShapeRenderer.java:52)
              at sun.java2d.SunGraphics2D.fill(SunGraphics2D.java:2193)
              at bios.applets.GeometryDrawer.fillPoly(GeometryDrawer.java:306)
              at bios.applets.GeometryDrawer.drawCurvePolygon(GeometryDrawer.java:354)
              at bios.applets.GeometryDrawer.draw(GeometryDrawer.java:101)
              - locked <0x44700850> (a bios.applets.MapPanel)
              at bios.applets.MapPanel.drawObject(MapPanel.java:376)
              at bios.applets.MapPanel.drawObjects(MapPanel.java:321)
              at bios.applets.MapPanel.paintComponent(MapPanel.java:277)
              at bios.applets.MapPanel.paintComponent(MapPanel.java:227)
              at javax.swing.JComponent.paint(JComponent.java:807)
              at javax.swing.JComponent.paintChildren(JComponent.java:646)
              - locked <0x4461ce58> (a java.awt.Component$AWTTreeLock)
              at javax.swing.JComponent.paint(JComponent.java:816)
              at javax.swing.JComponent.paintChildren(JComponent.java:646)
              - locked <0x4461ce58> (a java.awt.Component$AWTTreeLock)
              at javax.swing.JComponent.paint(JComponent.java:816)
              at javax.swing.JComponent.paintChildren(JComponent.java:646)
              - locked <0x4461ce58> (a java.awt.Component$AWTTreeLock)
              at javax.swing.JComponent.paint(JComponent.java:816)
              at javax.swing.JComponent.paintChildren(JComponent.java:646)
              - locked <0x4461ce58> (a java.awt.Component$AWTTreeLock)
              at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4744)
              at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4690)
              at javax.swing.JComponent._paintImmediately(JComponent.java:4634)
              at javax.swing.JComponent.paintImmediately(JComponent.java:4466)
              at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:407)
              at
      javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:120)
              at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:181)
              at java.awt.EventQueue.dispatchEvent(EventQueue.java:446)
              at
      java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:193)
              at
      java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:147)
              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:141)
              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:133)
              at java.awt.EventDispatchThread.run(EventDispatchThread.java:101)


      Dynamic libraries:
      08048000-0804d000 r-xp 00000000 03:05 560849
      /usr/local/j2sdk1.4.0/bin/appletviewer
      0804d000-0804f000 rw-p 00004000 03:05 560849
      /usr/local/j2sdk1.4.0/bin/appletviewer
      40000000-40014000 r-xp 00000000 03:05 160093 /lib/ld-2.2.4.so
      40014000-40015000 rw-p 00013000 03:05 160093 /lib/ld-2.2.4.so
      40016000-4001f000 r-xp 00000000 03:05 227080
      /usr/local/j2sdk1.4.0/jre/lib/i386/native_threads/libhpi.so
      4001f000-40020000 rw-p 00008000 03:05 227080
      /usr/local/j2sdk1.4.0/jre/lib/i386/native_threads/libhpi.so
      40020000-40021000 r--p 00000000 03:05 144102
      /usr/lib/locale/en_US/LC_IDENTIFICATION
      40021000-4002f000 r-xp 00000000 03:05 161361 /lib/libpthread-0.9.so
      4002f000-40037000 rw-p 0000d000 03:05 161361 /lib/libpthread-0.9.so
      40037000-4010c000 r-xp 00000000 03:05 48966 /usr/X11R6/lib/libX11.so.6.2
      4010c000-40111000 rw-p 000d4000 03:05 48966 /usr/X11R6/lib/libX11.so.6.2
      40112000-40114000 r-xp 00000000 03:05 160595 /lib/libdl-2.2.4.so
      40114000-40116000 rw-p 00001000 03:05 160595 /lib/libdl-2.2.4.so
      40117000-4022f000 r-xp 00000000 03:05 160590 /lib/libc-2.2.4.so
      4022f000-40235000 rw-p 00117000 03:05 160590 /lib/libc-2.2.4.so
      4023a000-404f8000 r-xp 00000000 03:05 227086
      /usr/local/j2sdk1.4.0/jre/lib/i386/client/libjvm.so
      404f8000-40640000 rw-p 002bd000 03:05 227086
      /usr/local/j2sdk1.4.0/jre/lib/i386/client/libjvm.so
      40654000-40665000 r-xp 00000000 03:05 161178 /lib/libnsl-2.2.4.so
      40665000-40667000 rw-p 00010000 03:05 161178 /lib/libnsl-2.2.4.so
      40669000-4069d000 r-xp 00000000 03:05 400248
      /usr/lib/libstdc++-2-libc6.1-1-2.9.0.so
      4069d000-406a9000 rw-p 00033000 03:05 400248
      /usr/lib/libstdc++-2-libc6.1-1-2.9.0.so
      406ab000-406cc000 r-xp 00000000 03:05 161177 /lib/libm-2.2.4.so
      406cc000-406cd000 rw-p 00020000 03:05 161177 /lib/libm-2.2.4.so
      406cd000-406de000 r-xp 00000000 03:05 227090
      /usr/local/j2sdk1.4.0/jre/lib/i386/libverify.so
      406de000-406e0000 rw-p 00010000 03:05 227090
      /usr/local/j2sdk1.4.0/jre/lib/i386/libverify.so
      406e0000-40701000 r-xp 00000000 03:05 227091
      /usr/local/j2sdk1.4.0/jre/lib/i386/libjava.so
      40701000-40703000 rw-p 00020000 03:05 227091
      /usr/local/j2sdk1.4.0/jre/lib/i386/libjava.so
      40704000-40718000 r-xp 00000000 03:05 227093
      /usr/local/j2sdk1.4.0/jre/lib/i386/libzip.so
      40718000-4071b000 rw-p 00013000 03:05 227093
      /usr/local/j2sdk1.4.0/jre/lib/i386/libzip.so
      4071b000-41ce2000 r--s 00000000 03:05 227133
      /usr/local/j2sdk1.4.0/jre/lib/rt.jar
      41d24000-41d3b000 r--s 00000000 03:05 227114
      /usr/local/j2sdk1.4.0/jre/lib/sunrsasign.jar
      41d3b000-41da9000 r--s 00000000 03:05 227116
      /usr/local/j2sdk1.4.0/jre/lib/jsse.jar
      41da9000-41dbc000 r--s 00000000 03:05 227115
      /usr/local/j2sdk1.4.0/jre/lib/jce.jar
      41dbc000-4203d000 r--s 00000000 03:05 227131
      /usr/local/j2sdk1.4.0/jre/lib/charsets.jar
      440e5000-440e6000 r--p 00000000 03:05 144098
      /usr/lib/locale/en_US/LC_MEASUREMENT
      440e6000-440e7000 r--p 00000000 03:05 144081 /usr/lib/locale/en_US/LC_TELEPHONE
      440e7000-440e8000 r--p 00000000 03:05 144072 /usr/lib/locale/en_US/LC_ADDRESS
      440e8000-440e9000 r--p 00000000 03:05 144067 /usr/lib/locale/en_US/LC_NAME
      440e9000-440ea000 r--p 00000000 03:05 144066 /usr/lib/locale/en_US/LC_PAPER
      440ea000-440eb000 r--p 00000000 03:05 64046
      /usr/lib/locale/en_US/LC_MESSAGES/SYS_LC_MESSAGES
      440eb000-440ec000 r--p 00000000 03:05 144065 /usr/lib/locale/en_US/LC_MONETARY
      440ec000-440ed000 r--p 00000000 03:05 144063 /usr/lib/locale/en_US/LC_TIME
      440ed000-440ee000 r--p 00000000 03:05 144062 /usr/lib/locale/en_US/LC_NUMERIC
      440ee000-440f0000 r--s 00000000 03:05 208622
      /usr/local/j2sdk1.4.0/jre/lib/ext/dnsns.jar
      4c170000-4c176000 r--p 00000000 03:05 144064 /usr/lib/locale/en_US/LC_COLLATE
      4c176000-4c1a1000 r--p 00000000 03:05 144061 /usr/lib/locale/en_US/LC_CTYPE
      4c1a2000-4c1a4000 r-xp 00000000 03:05 19448 /usr/lib/gconv/ISO8859-1.so
      4c1a4000-4c1a5000 rw-p 00001000 03:05 19448 /usr/lib/gconv/ISO8859-1.so
      4c1a5000-4c1ab000 r--s 00000000 03:05 99866 /tmp/jar_cache203.tmp (deleted)
      4c1ac000-4c1b6000 r-xp 00000000 03:05 161179 /lib/libnss_compat-2.2.4.so
      4c1b6000-4c1b7000 rw-p 00009000 03:05 161179 /lib/libnss_compat-2.2.4.so
      4c1e2000-4c1ff000 r--s 00000000 03:05 208306
      /usr/local/j2sdk1.4.0/jre/lib/ext/sunjce_provider.jar
      4c1ff000-4c29e000 r--s 00000000 03:05 208625
      /usr/local/j2sdk1.4.0/jre/lib/ext/localedata.jar
      4c29e000-4c2ac000 r--s 00000000 03:05 208626
      /usr/local/j2sdk1.4.0/jre/lib/ext/ldapsec.jar
      4c2ac000-4c746000 r--s 00000000 03:05 242090 /usr/local/j2sdk1.4.0/lib/tools.jar
      4c746000-4ca06000 r-xp 00000000 03:05 227101
      /usr/local/j2sdk1.4.0/jre/lib/i386/libawt.so
      4ca06000-4ca1a000 rw-p 002bf000 03:05 227101
      /usr/local/j2sdk1.4.0/jre/lib/i386/libawt.so
      4ca3f000-4ca90000 r-xp 00000000 03:05 227100
      /usr/local/j2sdk1.4.0/jre/lib/i386/libmlib_image.so
      4ca90000-4ca91000 rw-p 00050000 03:05 227100
      /usr/local/j2sdk1.4.0/jre/lib/i386/libmlib_image.so
      4ca91000-4ca97000 r-xp 00000000 03:05 49635 /usr/X11R6/lib/libXp.so.6.2
      4ca97000-4ca99000 rw-p 00005000 03:05 49635 /usr/X11R6/lib/libXp.so.6.2
      4ca99000-4cadf000 r-xp 00000000 03:05 49653 /usr/X11R6/lib/libXt.so.6.0
      4cadf000-4cae3000 rw-p 00045000 03:05 49653 /usr/X11R6/lib/libXt.so.6.0
      4cae3000-4caef000 r-xp 00000000 03:05 48968 /usr/X11R6/lib/libXext.so.6.4
      4caef000-4caf1000 rw-p 0000b000 03:05 48968 /usr/X11R6/lib/libXext.so.6.4
      4caf1000-4caf5000 r-xp 00000000 03:05 49668 /usr/X11R6/lib/libXtst.so.6.1
      4caf5000-4caf6000 rw-p 00003000 03:05 49668 /usr/X11R6/lib/libXtst.so.6.1
      4caf6000-4cafd000 r-xp 00000000 03:05 48965 /usr/X11R6/lib/libSM.so.6.0
      4cafd000-4caff000 rw-p 00006000 03:05 48965 /usr/X11R6/lib/libSM.so.6.0
      4caff000-4cb12000 r-xp 00000000 03:05 48963 /usr/X11R6/lib/libICE.so.6.3
      4cb12000-4cb14000 rw-p 00012000 03:05 48963 /usr/X11R6/lib/libICE.so.6.3
      4cb15000-4cb27000 r-xp 00000000 03:05 227096
      /usr/local/j2sdk1.4.0/jre/lib/i386/libnet.so
      4cb27000-4cb28000 rw-p 00011000 03:05 227096
      /usr/local/j2sdk1.4.0/jre/lib/i386/libnet.so
      4cb28000-4cb30000 r-xp 00000000 03:05 161181 /lib/libnss_files-2.2.4.so
      4cb30000-4cb32000 rw-p 00007000 03:05 161181 /lib/libnss_files-2.2.4.so
      4cb32000-4cbf7000 r-xp 00000000 03:05 227103
      /usr/local/j2sdk1.4.0/jre/lib/i386/libfontmanager.so
      4cbf7000-4cc11000 rw-p 000c4000 03:05 227103
      /usr/local/j2sdk1.4.0/jre/lib/i386/libfontmanager.so
      4cc12000-4cc3a000 r--s 00000000 03:05 99865 /tmp/jar_cache202.tmp (deleted)
      4cc3a000-4ccd0000 r--s 00000000 03:05 99867 /tmp/jar_cache204.tmp (deleted)
      4ccd0000-4ccec000 r-xp 00000000 03:05 227099
      /usr/local/j2sdk1.4.0/jre/lib/i386/libdcpr.so
      4ccec000-4cd00000 rw-p 0001b000 03:05 227099
      /usr/local/j2sdk1.4.0/jre/lib/i386/libdcpr.so
      4ce00000-4ce4c000 r--s 00000000 03:05 99868 /tmp/jar_cache205.tmp (deleted)
      4ce4c000-4ceaf000 r--s 00000000 03:05 99869 /tmp/jar_cache206.tmp (deleted)
      4ceaf000-4cfc2000 r--s 00000000 03:05 99870 /tmp/jar_cache207.tmp (deleted)
      4d300000-4d67b000 rw-s 00000000 00:05 1351712778 /SYSV00000000 (deleted)


      This computer is running debian GNU/Linux (unstable)


      This bug also seems to be in jdk/1.3.1 and jdk/1.3.0
      (Review ID: 136082)
      ======================================================================

            avu Alexey Ushakov
            jkimsunw Jeffrey Kim (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: