--- jsr166/src/jsr166e/ConcurrentHashMapV8.java 2011/08/30 11:35:39 1.5 +++ jsr166/src/jsr166e/ConcurrentHashMapV8.java 2011/08/30 13:30:35 1.6 @@ -989,9 +989,7 @@ public class ConcurrentHashMapV8 */ public int size() { long n = counter.sum(); - return (n <= 0L) ? 0 : - (n >= Integer.MAX_VALUE) ? Integer.MAX_VALUE : - (int)n; + return ((n >>> 31) == 0) ? (int)n : (n < 0L) ? 0 : Integer.MAX_VALUE; } /**