diff --git a/src/java.base/share/classes/java/lang/String.java b/src/java.base/share/classes/java/lang/String.java index df10a73fa01..608db7690fe 100644 --- a/src/java.base/share/classes/java/lang/String.java +++ b/src/java.base/share/classes/java/lang/String.java @@ -3005,9 +3005,8 @@ public final class String final byte[] multiple = new byte[limit]; System.arraycopy(value, 0, multiple, 0, len); int copied = len; - for (int next = copied << 1; next < limit && 0 < next; next = next << 1) { + for (; copied < limit - copied; copied <<= 1) { System.arraycopy(multiple, 0, multiple, copied, copied); - copied = next; } System.arraycopy(multiple, 0, multiple, copied, limit - copied); return new String(multiple, coder);