We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
toString
readObject
1 parent ed78c77 commit b9e66b2Copy full SHA for b9e66b2
java/fury-core/src/main/java/io/fury/resolver/ClassResolver.java
@@ -541,6 +541,13 @@ public static boolean requireJavaSerialization(Class<?> clz) {
541
if (Externalizable.class.isAssignableFrom(clz)) {
542
return false;
543
} else {
544
+ // `AnnotationInvocationHandler#readObject` may invoke `toString` of object, which may be
545
+ // risky.
546
+ // For example, JsonObject#toString may invoke `getter`.
547
+ // Use fury serialization to avoid this.
548
+ if ("sun.reflect.annotation.AnnotationInvocationHandler".equals(clz.getName())) {
549
+ return false;
550
+ }
551
return JavaSerializer.getReadObjectMethod(clz) != null
552
|| JavaSerializer.getWriteObjectMethod(clz) != null;
553
}
0 commit comments