--- 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;
}
}