As suggested by Ivan Gerasimov.
diff -r dc913ab01067 src/java.base/share/classes/java/lang/String.java
--- a/src/java.base/share/classes/java/lang/String.java Fri Mar 02 09:40:07 2018 -0400
+++ b/src/java.base/share/classes/java/lang/String.java Fri Mar 02 10:11:03 2018 -0400
@@ -3001,9 +3001,8 @@
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);
diff -r dc913ab01067 src/java.base/share/classes/java/lang/String.java
--- a/src/java.base/share/classes/java/lang/String.java Fri Mar 02 09:40:07 2018 -0400
+++ b/src/java.base/share/classes/java/lang/String.java Fri Mar 02 10:11:03 2018 -0400
@@ -3001,9 +3001,8 @@
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);
- relates to
-
JDK-8197594 String#repeat
-
- Resolved
-