asalabaev-nymbus commented on issue #1633:
URL:
https://github.com/apache/incubator-fury/issues/1633#issuecomment-2110968489
ok, I was able to reproduce a somewhat similar. And it is also similar to
the #1325
now the error is the combination of the two bugs - I see both errors now.
The details are below. But it maybe another issue since initially when opening
this ticket there was only NullPointerException that I have seen.
```
Create sequential serializer failed,
class: class i.MyClass
java.lang.RuntimeException: Create sequential serializer failed,
class: class i.MyClass
at
org.apache.fury.serializer.CodegenSerializer.loadCodegenSerializer(CodegenSerializer.java:52)
at
org.apache.fury.resolver.ClassResolver.lambda$getObjectSerializerClass$2(ClassResolver.java:954)
at
org.apache.fury.builder.JITContext.registerSerializerJITCallback(JITContext.java:131)
at
org.apache.fury.resolver.ClassResolver.getObjectSerializerClass(ClassResolver.java:952)
at
org.apache.fury.resolver.ClassResolver.getSerializerClass(ClassResolver.java:885)
at
org.apache.fury.resolver.ClassResolver.getSerializerClass(ClassResolver.java:782)
at
org.apache.fury.resolver.ClassResolver.createSerializer(ClassResolver.java:1168)
at
org.apache.fury.resolver.ClassResolver.getOrUpdateClassInfo(ClassResolver.java:1107)
at org.apache.fury.Fury.write(Fury.java:312)
at org.apache.fury.Fury.serialize(Fury.java:248)
at org.apache.fury.Fury.serialize(Fury.java:202)
at i.FuryTest.testFury(FuryTest.java:43)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
at
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
at
org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
at
org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
at
org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at
org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at
org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at
org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at jdk.proxy1/jdk.proxy1.$Proxy2.processTestClass(Unknown Source)
at
org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:176)
at
org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
at
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
at
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
at
org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
at
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133)
at
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71)
at
worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
at
worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: java.lang.NullPointerException
at
java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at
java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
at
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at
java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at
java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at
org.apache.fury.reflect.TypeRef$WildcardCapturer.captureAsTypeVariable(TypeRef.java:887)
at
org.apache.fury.reflect.TypeRef$WildcardCapturer$1.captureAsTypeVariable(TypeRef.java:921)
at
org.apache.fury.reflect.TypeRef$WildcardCapturer.capture0(TypeRef.java:878)
at
org.apache.fury.reflect.TypeRef$WildcardCapturer.capture0(TypeRef.java:868)
at
org.apache.fury.reflect.TypeRef$WildcardCapturer.capture0(TypeRef.java:868)
```
The code to reproduce it was to add generics:
```
package i;
import org.apache.fury.Fury;
import org.apache.fury.config.Language;
import org.junit.Test;
import java.util.Map;
import java.util.TreeMap;
class MyInternalClass<T> {
public int c = 9;
}
class MyInternalBaseClass extends MyInternalClass<String> {
public int d = 19;
}
class MyClass {
protected Map<String, MyInternalClass<?>> fields;
private transient int r = 13;
public MyClass() {
fields = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
fields.put("test", new MyInternalBaseClass());
}
}
public class FuryTest {
static Fury fury = Fury.builder().withLanguage(Language.JAVA)
// .withCodegen(false)
.build();
static {
fury.register(MyClass.class); //
fury.register(MyInternalClass.class); //
fury.register(MyInternalBaseClass.class); //
fury.register(String.CASE_INSENSITIVE_ORDER.getClass()); //
}
@Test
public void testFury() {
byte[] serialize = fury.serialize(new MyClass());
System.out.println("Code size =" + serialize.length);
}
}
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]