Introduce "unsafeAllocated" flag in TypeHint
This metadata information is required for supporting libraries using `sun.misc.Unsafe#allocateInstance(Class<?>)`, even though Spring Framework is not using this feature. Closes gh-34055
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -124,6 +124,14 @@ public enum MemberCategory {
|
||||
* reflection for inner classes but rather makes sure they are available
|
||||
* via a call to {@link Class#getDeclaredClasses}.
|
||||
*/
|
||||
DECLARED_CLASSES
|
||||
DECLARED_CLASSES,
|
||||
|
||||
/**
|
||||
* A category that represents the need for
|
||||
* {@link sun.misc.Unsafe#allocateInstance(Class) unsafe allocation}
|
||||
* for this type.
|
||||
* @since 6.2.1
|
||||
*/
|
||||
UNSAFE_ALLOCATED
|
||||
|
||||
}
|
||||
|
||||
@@ -124,6 +124,7 @@ class ReflectionHintsWriter {
|
||||
attributes.put("allDeclaredMethods", true);
|
||||
case PUBLIC_CLASSES -> attributes.put("allPublicClasses", true);
|
||||
case DECLARED_CLASSES -> attributes.put("allDeclaredClasses", true);
|
||||
case UNSAFE_ALLOCATED -> attributes.put("unsafeAllocated", true);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -59,7 +59,7 @@ class ReflectionHintsWriterTests {
|
||||
MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.INVOKE_DECLARED_CONSTRUCTORS,
|
||||
MemberCategory.INTROSPECT_PUBLIC_METHODS, MemberCategory.INTROSPECT_DECLARED_METHODS,
|
||||
MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_DECLARED_METHODS,
|
||||
MemberCategory.PUBLIC_CLASSES, MemberCategory.DECLARED_CLASSES)
|
||||
MemberCategory.PUBLIC_CLASSES, MemberCategory.DECLARED_CLASSES, MemberCategory.UNSAFE_ALLOCATED)
|
||||
.withField("DEFAULT_CHARSET")
|
||||
.withField("defaultCharset")
|
||||
.withField("aScore")
|
||||
@@ -83,6 +83,7 @@ class ReflectionHintsWriterTests {
|
||||
"allDeclaredMethods": true,
|
||||
"allPublicClasses": true,
|
||||
"allDeclaredClasses": true,
|
||||
"unsafeAllocated": true,
|
||||
"fields": [
|
||||
{ "name": "aScore" },
|
||||
{ "name": "DEFAULT_CHARSET" },
|
||||
|
||||
Reference in New Issue
Block a user