Skip to content

Commit c30b176

Browse files
committed
Fix proxy serialization errors
1 parent 3d1e8c9 commit c30b176

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/reflect/proxy/DynamicProxySupport.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@
5151
import com.oracle.svm.core.util.ImageHeapMap;
5252
import com.oracle.svm.core.util.VMError;
5353
import com.oracle.svm.util.ClassUtil;
54-
import com.oracle.svm.util.LogUtils;
5554
import com.oracle.svm.util.ReflectionUtil;
5655

5756
import jdk.graal.compiler.debug.GraalError;
@@ -156,7 +155,6 @@ private static Object createProxyClass(Class<?>[] interfaces) {
156155
}
157156
return clazz;
158157
} catch (Throwable t) {
159-
LogUtils.warning("Could not create a proxy class from list of interfaces: %s. Reason: %s", Arrays.toString(interfaces), t.getMessage());
160158
return t;
161159
}
162160
}

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/reflect/serialize/SerializationFeature.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -385,8 +385,12 @@ public void registerLambdaCapturingClass(ConfigurationCondition condition, Strin
385385
public void registerProxyClass(ConfigurationCondition condition, List<String> implementedInterfaces) {
386386
abortIfSealed();
387387
registerConditionalConfiguration(condition, (cnd) -> {
388-
Class<?> proxyClass = proxyRegistry.createProxyClassForSerialization(implementedInterfaces);
389-
register(cnd, proxyClass);
388+
try {
389+
Class<?> proxyClass = proxyRegistry.createProxyClassForSerialization(implementedInterfaces);
390+
register(cnd, proxyClass);
391+
} catch (IllegalArgumentException t) {
392+
/* ignore: can't serialize class that can't be instantiated */
393+
}
390394
});
391395
}
392396

0 commit comments

Comments
 (0)