public class JDKUtils
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static boolean |
ANDROID |
static int |
ANDROID_SDK_INT |
static long |
ARRAY_BYTE_BASE_OFFSET |
static long |
ARRAY_CHAR_BASE_OFFSET |
static boolean |
BIG_ENDIAN |
(package private) static java.lang.Class<?> |
CLASS_SQL_DATASOURCE |
(package private) static java.lang.Class<?> |
CLASS_SQL_ROW_SET |
static java.lang.Class |
CLASS_TRANSIENT |
(package private) static java.lang.invoke.MethodHandle |
CONSTRUCTOR_LOOKUP |
(package private) static boolean |
CONSTRUCTOR_LOOKUP_ERROR |
static long |
FIELD_BIGINTEGER_MAG_OFFSET |
static long |
FIELD_DECIMAL_INT_COMPACT_OFFSET |
static java.lang.reflect.Field |
FIELD_STRING_CODER |
static boolean |
FIELD_STRING_CODER_ERROR |
static long |
FIELD_STRING_CODER_OFFSET |
static java.lang.reflect.Field |
FIELD_STRING_VALUE |
static boolean |
FIELD_STRING_VALUE_ERROR |
static long |
FIELD_STRING_VALUE_OFFSET |
static boolean |
GRAAL |
static boolean |
HAS_SQL |
(package private) static java.lang.invoke.MethodHandles.Lookup |
IMPL_LOOKUP |
static java.lang.invoke.MethodHandle |
INDEX_OF_CHAR_LATIN1 |
(package private) static java.lang.Throwable |
initErrorLast |
static int |
JVM_VERSION |
static java.lang.Byte |
LATIN1 |
static java.lang.invoke.MethodHandle |
METHOD_HANDLE_HAS_NEGATIVE |
static boolean |
OPENJ9 |
static java.util.function.Predicate<byte[]> |
PREDICATE_IS_ASCII |
(package private) static java.util.concurrent.atomic.AtomicInteger |
reflectErrorCount |
(package private) static java.lang.Throwable |
reflectErrorLast |
static java.util.function.ToIntFunction<java.lang.String> |
STRING_CODER |
static java.util.function.BiFunction<byte[],java.lang.Byte,java.lang.String> |
STRING_CREATOR_JDK11 |
static java.util.function.BiFunction<char[],java.lang.Boolean,java.lang.String> |
STRING_CREATOR_JDK8 |
static java.util.function.Function<java.lang.String,byte[]> |
STRING_VALUE |
static sun.misc.Unsafe |
UNSAFE |
static java.lang.Byte |
UTF16 |
static int |
VECTOR_BIT_LENGTH |
static boolean |
VECTOR_SUPPORT |
| Constructor and Description |
|---|
JDKUtils() |
| Modifier and Type | Method and Description |
|---|---|
static java.lang.String |
asciiStringJDK8(byte[] bytes,
int offset,
int strlen) |
static char[] |
getCharArray(java.lang.String str) |
static boolean |
isAutoTypeDenyClass(java.lang.Class<?> type)
Tests whether a class is a well known deserialization gadget entry point, namely a
ClassLoader subclass or a JDK SQL DataSource/RowSet implementation. |
static boolean |
isSQLDataSourceOrRowSet(java.lang.Class<?> type) |
static java.lang.String |
latin1StringJDK8(byte[] bytes,
int offset,
int strlen) |
static void |
setReflectErrorLast(java.lang.Throwable error) |
static java.lang.invoke.MethodHandles.Lookup |
trustedLookup(java.lang.Class objectClass) |
public static final sun.misc.Unsafe UNSAFE
public static final long ARRAY_BYTE_BASE_OFFSET
public static final long ARRAY_CHAR_BASE_OFFSET
public static final int JVM_VERSION
public static final java.lang.Byte LATIN1
public static final java.lang.Byte UTF16
public static final java.lang.reflect.Field FIELD_STRING_VALUE
public static final long FIELD_STRING_VALUE_OFFSET
public static volatile boolean FIELD_STRING_VALUE_ERROR
public static final long FIELD_DECIMAL_INT_COMPACT_OFFSET
public static final long FIELD_BIGINTEGER_MAG_OFFSET
public static final java.lang.reflect.Field FIELD_STRING_CODER
public static final long FIELD_STRING_CODER_OFFSET
public static volatile boolean FIELD_STRING_CODER_ERROR
static final java.lang.Class<?> CLASS_SQL_DATASOURCE
static final java.lang.Class<?> CLASS_SQL_ROW_SET
public static final boolean HAS_SQL
public static final boolean ANDROID
public static final boolean GRAAL
public static final boolean OPENJ9
public static final int ANDROID_SDK_INT
public static final java.lang.Class CLASS_TRANSIENT
public static final boolean BIG_ENDIAN
public static final boolean VECTOR_SUPPORT
public static final int VECTOR_BIT_LENGTH
public static final java.util.function.BiFunction<char[],java.lang.Boolean,java.lang.String> STRING_CREATOR_JDK8
public static final java.util.function.BiFunction<byte[],java.lang.Byte,java.lang.String> STRING_CREATOR_JDK11
public static final java.util.function.ToIntFunction<java.lang.String> STRING_CODER
public static final java.util.function.Function<java.lang.String,byte[]> STRING_VALUE
public static final java.lang.invoke.MethodHandle METHOD_HANDLE_HAS_NEGATIVE
public static final java.util.function.Predicate<byte[]> PREDICATE_IS_ASCII
public static final java.lang.invoke.MethodHandle INDEX_OF_CHAR_LATIN1
static final java.lang.invoke.MethodHandles.Lookup IMPL_LOOKUP
static volatile java.lang.invoke.MethodHandle CONSTRUCTOR_LOOKUP
static volatile boolean CONSTRUCTOR_LOOKUP_ERROR
static volatile java.lang.Throwable initErrorLast
static volatile java.lang.Throwable reflectErrorLast
static final java.util.concurrent.atomic.AtomicInteger reflectErrorCount
public static boolean isSQLDataSourceOrRowSet(java.lang.Class<?> type)
public static boolean isAutoTypeDenyClass(java.lang.Class<?> type)
ClassLoader subclass or a JDK SQL DataSource/RowSet implementation.
Such types must not be resolved by matching an autoType whitelist prefix; only an accept
entry naming the type in full is treated as an explicit opt-in.type - the class to testpublic static void setReflectErrorLast(java.lang.Throwable error)
public static char[] getCharArray(java.lang.String str)
public static java.lang.invoke.MethodHandles.Lookup trustedLookup(java.lang.Class objectClass)
public static java.lang.String asciiStringJDK8(byte[] bytes,
int offset,
int strlen)
public static java.lang.String latin1StringJDK8(byte[] bytes,
int offset,
int strlen)