Skip to content

Commit e2ea031

Browse files
committed
Fixes for the new future default
1 parent 4c11c83 commit e2ea031

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/hub/ClassForNameSupport.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,9 @@ public static boolean isUnsafeAllocatedPreserved(Class<?> jClass) {
483483
}
484484

485485
public static boolean isRegisteredClass(String className) {
486+
if (!ClassNameSupport.isValidReflectionName(className)) {
487+
return true;
488+
}
486489
if (respectClassLoader()) {
487490
RuntimeDynamicAccessMetadata dynamicAccessMetadata = getDynamicAccessMetadataForName(className);
488491
if (dynamicAccessMetadata == null) {

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/hub/registry/ClassRegistries.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,9 @@ private Class<?> resolve(String name, ClassLoader loader) throws ClassNotFoundEx
197197
arrayDimensions++;
198198
}
199199
if (arrayDimensions == name.length()) {
200+
if (loader == null) {
201+
return null;
202+
}
200203
throw new ClassNotFoundException(name);
201204
}
202205
Class<?> elementalResult;
@@ -271,7 +274,7 @@ private static Class<?> getArrayClass(String name, Class<?> elementalResult, int
271274
if (RuntimeClassLoading.isSupported()) {
272275
RuntimeClassLoading.getOrCreateArrayHub(hub);
273276
} else {
274-
if (throwMissingRegistrationErrors()) {
277+
if (throwMissingRegistrationErrors() && shouldFollowReflectionConfiguration() && !ClassForNameSupport.isRegisteredClass(name)) {
275278
MissingReflectionRegistrationUtils.reportClassAccess(name);
276279
}
277280
return null;

0 commit comments

Comments
 (0)