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

Equal java.awt.geom.Area objects have different hashCode values.

XMLWordPrintable

    • generic
    • generic

      A DESCRIPTION OF THE PROBLEM :
      Cloned area gets a different hashCode from original one.

      ACTUAL VS EXPECTED BEHAVIOR
      ACTUAL -
      true
      1469821799 501263526
      Exception in thread "main" java.lang.RuntimeException: Cloned area should have same hashCode
      at PolygonSubtract.main(PolygonSubtract.java:35)
      EXECTED -
      true
      458209687 458209687 (same hashes)

      ---------- BEGIN SOURCE ----------

      import java.awt.geom.Area;
      import java.awt.geom.GeneralPath;

      public class PolygonSubtract {
          public static void main(String argv[]) {
              Area area = new Area();

              GeneralPath ring1 = new GeneralPath();
              ring1.moveTo(0, 45);
              ring1.lineTo(90, 0);
              ring1.lineTo(60, -45);
              ring1.lineTo(-60, -45);
              ring1.lineTo(-90, 0);
              ring1.closePath();
              area.add(new Area(ring1));

              GeneralPath ring2 = new GeneralPath();
              ring2.moveTo(0, 20);
              ring2.lineTo(100, 0);
              ring2.lineTo(30, -20);
              ring2.lineTo(-30, -20);
              ring2.lineTo(-100, 0);
              ring2.closePath();
              area.subtract(new Area(ring2));

              // Test resource management by verifying equals/hashCode consistency
              Area areaCopy = (Area) area.clone();
              System.out.println(areaCopy.equals(area));
              System.out.println(areaCopy.hashCode() + " " + area.hashCode());
              if (!area.equals(areaCopy)) {
                  throw new RuntimeException("Cloned area should be equal");
              }
              if (area.hashCode() != areaCopy.hashCode()) {
                  throw new RuntimeException("Cloned area should have same hashCode");
              }
          }
      }
      ---------- END SOURCE ----------

            pmtavare Patricia Tavares
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: