jdk/src/share/classes/java/util/HashMap.java
changeset 17949 6c33d8f2601e
parent 17939 bd750ec19d82
child 18166 a24e00a7c5ae
--- a/jdk/src/share/classes/java/util/HashMap.java	Wed Jun 05 11:12:31 2013 +0100
+++ b/jdk/src/share/classes/java/util/HashMap.java	Fri May 31 10:53:19 2013 +0200
@@ -2701,8 +2701,10 @@
                     action.accept(m.nullKeyEntry.key);
                 }
             }
-            if (tab.length >= hi && (i = index) >= 0 && i < (index = hi)) {
+            if (tab.length >= hi && (i = index) >= 0 &&
+                (i < (index = hi) || current != null)) {
                 Object p = current;
+                current = null;
                 do {
                     if (p == null) {
                         p = tab[i++];
@@ -2815,8 +2817,10 @@
                     action.accept(m.nullKeyEntry.value);
                 }
             }
-            if (tab.length >= hi && (i = index) >= 0 && i < (index = hi)) {
+            if (tab.length >= hi && (i = index) >= 0 &&
+                (i < (index = hi) || current != null)) {
                 Object p = current;
+                current = null;
                 do {
                     if (p == null) {
                         p = tab[i++];
@@ -2928,8 +2932,10 @@
                     action.accept(m.nullKeyEntry);
                 }
             }
-            if (tab.length >= hi && (i = index) >= 0 && i < (index = hi)) {
+            if (tab.length >= hi && (i = index) >= 0 &&
+                (i < (index = hi) || current != null)) {
                 Object p = current;
+                current = null;
                 do {
                     if (p == null) {
                         p = tab[i++];