Skip to content

Commit 14d3662

Browse files
committed
[GR-47644] Ignore missing service loader provider classes.
PullRequest: graal/15134
2 parents 5b3e955 + 9266bb0 commit 14d3662

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/ServiceLoaderFeature.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,9 @@ void handleServiceClassIsReachable(DuringAnalysisAccess access, Class<?> service
156156
/* Make provider reflectively instantiable */
157157
Class<?> providerClass = access.findClassByName(provider);
158158

159+
if (providerClass == null || providerClass.isArray() || providerClass.isPrimitive()) {
160+
continue;
161+
}
159162
FeatureImpl.DuringAnalysisAccessImpl accessImpl = (FeatureImpl.DuringAnalysisAccessImpl) access;
160163
if (!accessImpl.getHostVM().platformSupported(providerClass)) {
161164
continue;
@@ -165,19 +168,17 @@ void handleServiceClassIsReachable(DuringAnalysisAccess access, Class<?> service
165168
continue;
166169
}
167170

168-
if (providerClass != null && !providerClass.isArray() && !providerClass.isPrimitive()) {
169-
Constructor<?> nullaryConstructor;
170-
try {
171-
nullaryConstructor = providerClass.getDeclaredConstructor();
172-
} catch (NoSuchMethodException | SecurityException | LinkageError e) {
173-
/* Skip providers that do not comply with requirements */
174-
nullaryConstructor = null;
175-
}
176-
if (nullaryConstructor != null) {
177-
RuntimeReflection.register(providerClass);
178-
RuntimeReflection.register(nullaryConstructor);
179-
registeredProviders.add(provider);
180-
}
171+
Constructor<?> nullaryConstructor;
172+
try {
173+
nullaryConstructor = providerClass.getDeclaredConstructor();
174+
} catch (NoSuchMethodException | SecurityException | LinkageError e) {
175+
/* Skip providers that do not comply with requirements */
176+
nullaryConstructor = null;
177+
}
178+
if (nullaryConstructor != null) {
179+
RuntimeReflection.register(providerClass);
180+
RuntimeReflection.register(nullaryConstructor);
181+
registeredProviders.add(provider);
181182
}
182183
}
183184
if (!registeredProviders.isEmpty()) {

0 commit comments

Comments
 (0)