Index: src/main/java/java/util/BitSet.java =================================================================== --- src/main/java/java/util/BitSet.java (revision 548394) +++ src/main/java/java/util/BitSet.java (working copy) @@ -695,7 +695,10 @@ for (int i = 0; i < range; i++) { bits[i] &= ~bsBits[i]; } - actualArrayLength = range; + + if (actualArrayLength < range) { + actualArrayLength = range; + } isLengthActual = !((actualArrayLength > 0) && (bits[actualArrayLength - 1] == 0)); } Index: src/test/java/tests/api/java/util/BitSetTest.java =================================================================== --- src/test/java/tests/api/java/util/BitSetTest.java (revision 546816) +++ src/test/java/tests/api/java/util/BitSetTest.java (working copy) @@ -996,6 +996,14 @@ } catch (NullPointerException e) { // expected } + + // Regression test for HARMONY-4213 + bs = new BitSet(256); + bs2 = new BitSet(256); + bs.set(97); + bs2.set(37); + bs.andNot(bs2); + assertTrue("Incorrect value at 97 pos", bs.get(97)); } /**