【Java】java.lang.ArrayIndexOutOfBoundsException: 195 when deserializing Protobuf Model in COMPATIBLE mode
Search before asking
- [X] I had searched in the issues and found no similar issues.
Version
Java 1.8 fury 0.7.0
Component(s)
Java
Minimal reproduce step
public static void main(String[] args) {
//any protocol model
Protobuf.RequestHeader requestHeader = Protobuf.RequestHeader
.newBuilder().setSid(1).setSseqNo(2).setReqTime(3).setCid(4)
.setCseqNo(5).setSms("6").setSignkey("7").build();
ThreadSafeFury threadSafeFury = Fury.builder()
.withLanguage(Language.JAVA).withRefTracking(true)
.requireClassRegistration(false)
.withCompatibleMode(CompatibleMode.COMPATIBLE)
.buildThreadSafeFury();
byte[] serialize = threadSafeFury.serializeJavaObject(requestHeader);
Protobuf.RequestHeader deserialize = threadSafeFury
.deserializeJavaObject(serialize, Protobuf.RequestHeader.class);
}
What did you expect to see?
//
What did you see instead?
Exception in thread "main" org.apache.fury.exception.DeserializationException: Deserialize failed, read objects are: [null, null] at org.apache.fury.util.ExceptionUtils.handleReadFailed(ExceptionUtils.java:63) at org.apache.fury.Fury.deserializeJavaObject(Fury.java:1117) at org.apache.fury.Fury.deserializeJavaObject(Fury.java:1094) at org.apache.fury.ThreadLocalFury.deserializeJavaObject(ThreadLocalFury.java:195) at test.Test.main(Test.java:26) Caused by: java.lang.ArrayIndexOutOfBoundsException: 195 at org.apache.fury.resolver.MetaStringBytes.decode(MetaStringBytes.java:69) at org.apache.fury.resolver.ClassResolver.populateBytesToClassInfo(ClassResolver.java:1708) at org.apache.fury.resolver.ClassResolver.loadBytesToClassInfo(ClassResolver.java:1699) at org.apache.fury.resolver.ClassResolver.readClassInternal(ClassResolver.java:1588) at org.apache.fury.serializer.ReplaceResolveSerializer.readObject(ReplaceResolveSerializer.java:310) at org.apache.fury.serializer.ReplaceResolveSerializer.read(ReplaceResolveSerializer.java:305) at org.apache.fury.Fury.readData(Fury.java:923) at org.apache.fury.serializer.ReplaceResolveSerializer.read(ReplaceResolveSerializer.java:284) at org.apache.fury.Fury.readDataInternal(Fury.java:955) at org.apache.fury.Fury.deserializeJavaObject(Fury.java:1111) ... 3 more
Anything Else?
No response
Are you willing to submit a PR?
- [ ] I'm willing to submit a PR!
Hi @hifishzlj , could you try fury 0.10.3 to see whether this error still happen?