From 7e43bbe050cff36631c95495bc28f45d4965f459 Mon Sep 17 00:00:00 2001 From: Thomas Jaeckle Date: Thu, 31 Jan 2019 16:57:01 +0000 Subject: [PATCH 1/2] Fixes #26286 by applying same change for Java9+ as was done in #25165 --- akka-actor/src/main/scala/akka/util/Unsafe.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/akka-actor/src/main/scala/akka/util/Unsafe.java b/akka-actor/src/main/scala/akka/util/Unsafe.java index 54e5ad094d..635f100027 100644 --- a/akka-actor/src/main/scala/akka/util/Unsafe.java +++ b/akka-actor/src/main/scala/akka/util/Unsafe.java @@ -46,7 +46,7 @@ public final class Unsafe { public static void copyUSAsciiStrToBytes(String str, byte[] bytes) { if (isJavaVersion9Plus) { final byte[] chars = (byte[]) instance.getObject(str, stringValueFieldOffset); - System.arraycopy(chars, 0, bytes, 0, chars.length); + System.arraycopy(chars, 0, bytes, 0, str.length()); } else { final char[] chars = (char[]) instance.getObject(str, stringValueFieldOffset); int i = 0; From 0927f9123b40d9b1479ebc13b3e7623f8480ba28 Mon Sep 17 00:00:00 2001 From: Thomas Jaeckle Date: Fri, 1 Feb 2019 13:13:27 +0000 Subject: [PATCH 2/2] Fixes #26286 by applying same change for Java9+ as was done in #25165 --- akka-actor/src/main/scala/akka/util/Unsafe.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/akka-actor/src/main/scala/akka/util/Unsafe.java b/akka-actor/src/main/scala/akka/util/Unsafe.java index 54e5ad094d..c23915e83b 100644 --- a/akka-actor/src/main/scala/akka/util/Unsafe.java +++ b/akka-actor/src/main/scala/akka/util/Unsafe.java @@ -46,7 +46,7 @@ public final class Unsafe { public static void copyUSAsciiStrToBytes(String str, byte[] bytes) { if (isJavaVersion9Plus) { final byte[] chars = (byte[]) instance.getObject(str, stringValueFieldOffset); - System.arraycopy(chars, 0, bytes, 0, chars.length); + System.arraycopy(chars, 0, bytes, 0, str.length()); } else { final char[] chars = (char[]) instance.getObject(str, stringValueFieldOffset); int i = 0; @@ -63,7 +63,7 @@ public final class Unsafe { if (isJavaVersion9Plus) { final byte[] chars = (byte[]) instance.getObject(str, stringValueFieldOffset); - while (i < chars.length) { + while (i < str.length()) { long x = s0 ^ (long)chars[i++]; // Mix character into PRNG state long y = s1; @@ -76,7 +76,7 @@ public final class Unsafe { } } else { final char[] chars = (char[]) instance.getObject(str, stringValueFieldOffset); - while (i < chars.length) { + while (i < str.length()) { long x = s0 ^ (long)chars[i++]; // Mix character into PRNG state long y = s1;