Search before asking
Version
Fory(java) 1.2.0、1.3.0
Component(s)
Java
Minimal reproduce step
Tomcat 9.0.118 redeploy war
Caused by: java.lang.IllegalAccessException: no such constructor: com.eryansky.fastweixin.cluster.AccessTokenCacheForyRefCodecCompatible0_0.(TypeResolver,Class,TypeDef)void/invokeSpecial
at java.lang.invoke.MemberName.makeAccessException(MemberName.java:867)
at java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:1003)
at java.lang.invoke.MethodHandles$Lookup.resolveOrFail(MethodHandles.java:1386)
at java.lang.invoke.MethodHandles$Lookup.findConstructor(MethodHandles.java:924)
at org.apache.fory.reflect.ReflectionUtils.lambda$getCtrHandle$1(ReflectionUtils.java:162)
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
at org.apache.fory.reflect.ReflectionUtils.getCtrHandle(ReflectionUtils.java:158)
at org.apache.fory.resolver.TypeResolver.newGeneratedCompatibleSerializer(TypeResolver.java:1244)
at org.apache.fory.resolver.TypeResolver.getMetaSharedTypeInfo(TypeResolver.java:1231)
at org.apache.fory.resolver.TypeResolver.createMetaSharedTypeInfo(TypeResolver.java:1079)
at org.apache.fory.resolver.TypeResolver.buildMetaSharedTypeInfo(TypeResolver.java:1064)
at org.apache.fory.resolver.TypeResolver.buildCheckedMetaSharedTypeInfo(TypeResolver.java:1090)
at org.apache.fory.resolver.TypeResolver.readSharedTypeDefInfo(TypeResolver.java:903)
at org.apache.fory.resolver.TypeResolver.readSharedClassTypeInfo(TypeResolver.java:882)
at org.apache.fory.resolver.TypeResolver.readTypeInfo(TypeResolver.java:633)
at org.apache.fory.context.ReadContext.readRef(ReadContext.java:532)
at org.apache.fory.Fory.deserialize(Fory.java:515)
... 104 more
Caused by: java.lang.LinkageError: bad method type alias: (TypeResolver,Class,TypeDef)void not visible from class com.eryansky.fastweixin.cluster.AccessTokenCacheForyRefCodecCompatible0_0
at java.lang.invoke.MemberName.checkForTypeAlias(MemberName.java:793)
at java.lang.invoke.MemberName$Factory.resolve(MemberName.java:976)
at java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:1000)
public class ForySerializer implements Serializer {
private final static Logger log = org.slf4j.LoggerFactory.getLogger(ForySerializer.class);
private static volatile ThreadSafeFory fory = null;
private static final AllowListChecker typeChecker;
static {
LoggerFactory.useSlf4jLogging(true);
// AllowListChecker checker = new AllowListChecker(AllowListChecker.CheckLevel.STRICT);
AllowListChecker checker = new AllowListChecker(AllowListChecker.CheckLevel.WARN);
log.info("Using default TypeChecker: {} checkLevel: {}", checker.getClass().getName(), checker.getCheckLevel().name());
typeChecker = checker;
fory = Fory.builder().withLanguage(Language.JAVA)
// Allow to deserialize objects unknown types, more flexible
// but may be insecure if the classes contains malicious code.
.withRefTracking(true)
.requireClassRegistration(false)
.withTypeChecker(typeChecker)
.buildThreadSafeFory();
}
public ForySerializer(){
}
@Override
public String name() {
return "fory";
}
@Override
public byte[] serialize(Object obj) throws IOException {
return fory.serialize(obj);
}
@Override
public Object deserialize(byte[] bytes) throws IOException {
return fory.deserialize(bytes);
}
public static ThreadSafeFory getFory() {
return fory;
}
public static AllowListChecker getTypeChecker() {
return typeChecker;
}
}
What did you expect to see?
Fory(java) 1.1.0 Tomcat 9.0.118 redeploy OK
What did you see instead?
Fory(java) Tomcat 9.0.118 redeploy OK
Anything Else?
No response
Are you willing to submit a PR?
Search before asking
Version
Fory(java) 1.2.0、1.3.0
Component(s)
Java
Minimal reproduce step
Tomcat 9.0.118 redeploy war
Caused by: java.lang.IllegalAccessException: no such constructor: com.eryansky.fastweixin.cluster.AccessTokenCacheForyRefCodecCompatible0_0.(TypeResolver,Class,TypeDef)void/invokeSpecial
at java.lang.invoke.MemberName.makeAccessException(MemberName.java:867)
at java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:1003)
at java.lang.invoke.MethodHandles$Lookup.resolveOrFail(MethodHandles.java:1386)
at java.lang.invoke.MethodHandles$Lookup.findConstructor(MethodHandles.java:924)
at org.apache.fory.reflect.ReflectionUtils.lambda$getCtrHandle$1(ReflectionUtils.java:162)
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
at org.apache.fory.reflect.ReflectionUtils.getCtrHandle(ReflectionUtils.java:158)
at org.apache.fory.resolver.TypeResolver.newGeneratedCompatibleSerializer(TypeResolver.java:1244)
at org.apache.fory.resolver.TypeResolver.getMetaSharedTypeInfo(TypeResolver.java:1231)
at org.apache.fory.resolver.TypeResolver.createMetaSharedTypeInfo(TypeResolver.java:1079)
at org.apache.fory.resolver.TypeResolver.buildMetaSharedTypeInfo(TypeResolver.java:1064)
at org.apache.fory.resolver.TypeResolver.buildCheckedMetaSharedTypeInfo(TypeResolver.java:1090)
at org.apache.fory.resolver.TypeResolver.readSharedTypeDefInfo(TypeResolver.java:903)
at org.apache.fory.resolver.TypeResolver.readSharedClassTypeInfo(TypeResolver.java:882)
at org.apache.fory.resolver.TypeResolver.readTypeInfo(TypeResolver.java:633)
at org.apache.fory.context.ReadContext.readRef(ReadContext.java:532)
at org.apache.fory.Fory.deserialize(Fory.java:515)
... 104 more
Caused by: java.lang.LinkageError: bad method type alias: (TypeResolver,Class,TypeDef)void not visible from class com.eryansky.fastweixin.cluster.AccessTokenCacheForyRefCodecCompatible0_0
at java.lang.invoke.MemberName.checkForTypeAlias(MemberName.java:793)
at java.lang.invoke.MemberName$Factory.resolve(MemberName.java:976)
at java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:1000)
What did you expect to see?
Fory(java) 1.1.0 Tomcat 9.0.118 redeploy OK
What did you see instead?
Fory(java) Tomcat 9.0.118 redeploy OK
Anything Else?
No response
Are you willing to submit a PR?