Skip to content

Commit 8bffd99

Browse files
committed
Fix registerProxy to return null for wrong interfaces
1 parent c30b176 commit 8bffd99

File tree

1 file changed

+7
-2
lines changed
  • substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/reflect/proxy

1 file changed

+7
-2
lines changed

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/reflect/proxy/ProxyRegistry.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@
2828
import java.util.function.BiConsumer;
2929

3030
import org.graalvm.nativeimage.impl.ConfigurationCondition;
31+
import org.graalvm.nativeimage.impl.RuntimeProxyRegistrySupport;
3132

3233
import com.oracle.svm.core.jdk.proxy.DynamicProxyRegistry;
3334
import com.oracle.svm.hosted.ConditionalConfigurationRegistry;
3435
import com.oracle.svm.hosted.ImageClassLoader;
3536
import com.oracle.svm.util.LogUtils;
36-
import org.graalvm.nativeimage.impl.RuntimeProxyRegistrySupport;
3737

3838
public class ProxyRegistry extends ConditionalConfigurationRegistry implements RuntimeProxyRegistrySupport, BiConsumer<ConfigurationCondition, List<String>> {
3939
private final DynamicProxyRegistry dynamicProxySupport;
@@ -57,7 +57,12 @@ public Class<?> registerProxy(ConfigurationCondition condition, Class<?>... inte
5757
abortIfSealed();
5858
requireNonNull(interfaces, "interface", "proxy class creation");
5959
registerConditionalConfiguration(condition, (cnd) -> dynamicProxySupport.addProxyClass(cnd, interfaces));
60-
return dynamicProxySupport.getProxyClassHosted(interfaces);
60+
try {
61+
return dynamicProxySupport.getProxyClassHosted(interfaces);
62+
} catch (Throwable t) {
63+
/* we return null for illegal proxy classes */
64+
return null;
65+
}
6166
}
6267

6368
public Class<?> createProxyClassForSerialization(List<String> proxies) {

0 commit comments

Comments
 (0)