Index: modules/awt/src/main/java/common/java/awt/Polygon.java =================================================================== --- modules/awt/src/main/java/common/java/awt/Polygon.java (revision 449668) +++ modules/awt/src/main/java/common/java/awt/Polygon.java (working copy) @@ -74,6 +74,9 @@ public Iterator(AffineTransform at, Polygon p) { this.p = p; this.t = at; + if (p.npoints == 0) { + index = 1; + } } public int getWindingRule() { Index: modules/awt/src/test/api/java/common/java/awt/PolygonTest.java =================================================================== --- modules/awt/src/test/api/java/common/java/awt/PolygonTest.java (revision 449668) +++ modules/awt/src/test/api/java/common/java/awt/PolygonTest.java (working copy) @@ -276,6 +276,14 @@ new float[]{4, 5, 5, 6, 6, 7}); } + public void testGetPathIteratorEmpty() { + // Regression test HARMONY-1572 + Polygon pg = new Polygon(new int[]{1, 2, 3}, new int[]{4, 5, 6}, 0); + PathIterator p = pg.getPathIterator(null); + checkPathRule(p, PathIterator.WIND_EVEN_ODD); + checkPathDone(p, true); + } + public String objToStr(Object obj) { Polygon p = (Polygon)obj; String data = p.npoints + " [";