jdk/src/share/classes/java/util/JumboEnumSet.java
changeset 8787 4b055daf8dd0
parent 7803 56bc97d69d93
child 8800 e658ae923d53
--- a/jdk/src/share/classes/java/util/JumboEnumSet.java	Mon Mar 14 11:45:21 2011 -0700
+++ b/jdk/src/share/classes/java/util/JumboEnumSet.java	Mon Mar 14 14:49:52 2011 -0700
@@ -138,8 +138,11 @@
         public void remove() {
             if (lastReturned == 0)
                 throw new IllegalStateException();
-            elements[lastReturnedIndex] -= lastReturned;
-            size--;
+            final long oldElements = elements[lastReturnedIndex];
+            elements[lastReturnedIndex] &= ~lastReturned;
+            if (oldElements != elements[lastReturnedIndex]) {
+                size--;
+            }
             lastReturned = 0;
         }
     }