diff --git a/core/src/main/java/com/alibaba/fastjson2/JSONReader.java b/core/src/main/java/com/alibaba/fastjson2/JSONReader.java index 74a93abb7..2b8ff97d3 100644 --- a/core/src/main/java/com/alibaba/fastjson2/JSONReader.java +++ b/core/src/main/java/com/alibaba/fastjson2/JSONReader.java @@ -3240,7 +3240,7 @@ protected final String toString(Map object) { public static JSONReader of(byte[] utf8Bytes) { Context context = createReadContext(); - if (PREDICATE_IS_ASCII.test(utf8Bytes)) { + if (PREDICATE_IS_ASCII != null && PREDICATE_IS_ASCII.test(utf8Bytes)) { return new JSONReaderASCII(context, null, utf8Bytes, 0, utf8Bytes.length); } @@ -3249,7 +3249,7 @@ public static JSONReader of(byte[] utf8Bytes) { @Deprecated public static JSONReader of(Context context, byte[] utf8Bytes) { - if (PREDICATE_IS_ASCII.test(utf8Bytes)) { + if (PREDICATE_IS_ASCII != null && PREDICATE_IS_ASCII.test(utf8Bytes)) { return new JSONReaderASCII(context, null, utf8Bytes, 0, utf8Bytes.length); } @@ -3257,7 +3257,7 @@ public static JSONReader of(Context context, byte[] utf8Bytes) { } public static JSONReader of(byte[] utf8Bytes, Context context) { - if (PREDICATE_IS_ASCII.test(utf8Bytes)) { + if (PREDICATE_IS_ASCII != null && PREDICATE_IS_ASCII.test(utf8Bytes)) { return new JSONReaderASCII(context, null, utf8Bytes, 0, utf8Bytes.length); } @@ -3500,7 +3500,7 @@ public static JSONReader of(String str) { int coder = STRING_CODER.applyAsInt(str); if (coder == LATIN1) { byte[] bytes = STRING_VALUE.apply(str); - if (PREDICATE_IS_ASCII.test(bytes)) { + if (PREDICATE_IS_ASCII != null && PREDICATE_IS_ASCII.test(bytes)) { return new JSONReaderASCII(context, str, bytes, 0, bytes.length); } } diff --git a/core/src/main/java/com/alibaba/fastjson2/util/JDKUtils.java b/core/src/main/java/com/alibaba/fastjson2/util/JDKUtils.java index a8703043d..8d6f8db5a 100644 --- a/core/src/main/java/com/alibaba/fastjson2/util/JDKUtils.java +++ b/core/src/main/java/com/alibaba/fastjson2/util/JDKUtils.java @@ -317,9 +317,6 @@ public class JDKUtils { initErrorLast = e; } } - if (isAscii == null) { - isAscii = JDKUtils::isASCII; - } PREDICATE_IS_ASCII = isAscii; } @@ -525,8 +522,4 @@ public static String latin1StringJDK8(byte[] bytes, int offset, int strlen) { } return STRING_CREATOR_JDK8.apply(chars, Boolean.TRUE); } - - static boolean isASCII(byte[] chars) { - return IOUtils.isASCII(chars, 0, chars.length); - } }