Index: modules/luni/src/main/java/java/lang/String.java =================================================================== --- modules/luni/src/main/java/java/lang/String.java (revision 420511) +++ modules/luni/src/main/java/java/lang/String.java (working copy) @@ -498,11 +498,11 @@ super(); if (codePoints == null) throw new NullPointerException(); - if (offset < 0 || count < 0 || (offset + count) > codePoints.length) + int end = offset + count; + if (offset < 0 || count < 0 || end < 0 || end > codePoints.length) throw new IndexOutOfBoundsException(); this.offset = 0; this.value = new char[count * 2]; - int end = offset + count; int c = 0; for (int i = offset; i < end; i++) { c += Character.toChars(codePoints[i], this.value, c);