apache/fory

[Java] support copy non-serializable objects such as java.lang.Package

Open

#2.941 aberto em 27 de nov. de 2025

Ver no GitHub
 (17 comments) (0 reactions) (0 assignees)Java (426 forks)auto 404
buggood first issue

Métricas do repositório

Stars
 (4.419 stars)
Métricas de merge de PR
 (Métricas PR pendentes)

Description

Search before asking

  • I had searched in the issues and found no similar issues.

Version

I'm facing an issue copying Hibernate objects using fory.copy(object) whereas fory.deserialize(fory.serialize(object)) works fine for the same object.

java.lang.RuntimeException: Create sequential serializer failed, class: class org.hibernate.boot.registry.classloading.internal.AggregatedClassLoader java.lang.UnsupportedOperationException: Class class java.lang.Package doesn't support serialization. at org.apache.fory.resolver.ClassResolver.getSerializerClass(ClassResolver.java:920) at org.apache.fory.resolver.ClassResolver.getSerializerClass(ClassResolver.java:854) at org.apache.fory.builder.BaseObjectCodecBuilder.lambda$getOrCreateSerializer$8(BaseObjectCodecBuilder.java:607) at org.apache.fory.builder.BaseObjectCodecBuilder.lambda$typeResolver$2(BaseObjectCodecBuilder.java:247) at org.apache.fory.builder.JITContext.asyncVisitFory(JITContext.java:159) at org.apache.fory.builder.BaseObjectCodecBuilder.typeResolver(BaseObjectCodecBuilder.java:247) at org.apache.fory.builder.BaseObjectCodecBuilder.typeResolver(BaseObjectCodecBuilder.java:243) at org.apache.fory.builder.BaseObjectCodecBuilder.getOrCreateSerializer(BaseObjectCodecBuilder.java:607) at org.apache.fory.builder.BaseObjectCodecBuilder.readOrGetSerializerForDeclaredType(BaseObjectCodecBuilder.java:2164) at org.apache.fory.builder.BaseObjectCodecBuilder.readChunk(BaseObjectCodecBuilder.java:2056) at org.apache.fory.builder.BaseObjectCodecBuilder.lambda$deserializeForMap$47e820f7$1(BaseObjectCodecBuilder.java:1995) at org.apache.fory.codegen.Expression$While.<init>(Expression.java:2209) at org.apache.fory.builder.BaseObjectCodecBuilder.deserializeForMap(BaseObjectCodecBuilder.java:1967) at org.apache.fory.builder.BaseObjectCodecBuilder.deserializeForNotNull(BaseObjectCodecBuilder.java:1662) at org.apache.fory.builder.BaseObjectCodecBuilder.deserializeForNotNull(BaseObjectCodecBuilder.java:1621) at org.apache.fory.builder.BaseObjectCodecBuilder.lambda$deserializeForNullable$26(BaseObjectCodecBuilder.java:1552) at org.apache.fory.builder.BaseObjectCodecBuilder.readRef(BaseObjectCodecBuilder.java:1572) at org.apache.fory.builder.BaseObjectCodecBuilder.deserializeForNullable(BaseObjectCodecBuilder.java:1552) at org.apache.fory.builder.ObjectCodecBuilder.lambda$deserializeGroup$135afeca$1(ObjectCodecBuilder.java:560) at org.apache.fory.codegen.ExpressionOptimizer.invokeGenerated(ExpressionOptimizer.java:49) at org.apache.fory.builder.ObjectCodecOptimizer.invokeGenerated(ObjectCodecOptimizer.java:138) at org.apache.fory.builder.ObjectCodecBuilder.deserializeGroup(ObjectCodecBuilder.java:577) at org.apache.fory.builder.ObjectCodecBuilder.buildDecodeExpression(ObjectCodecBuilder.java:465) at org.apache.fory.builder.BaseObjectCodecBuilder.genCode(BaseObjectCodecBuilder.java:264) at org.apache.fory.codegen.CompileUnit.getCode(CompileUnit.java:53) at org.apache.fory.codegen.JaninoUtils.toBytecode(JaninoUtils.java:81) at org.apache.fory.codegen.JaninoUtils.toBytecode(JaninoUtils.java:73) at org.apache.fory.codegen.CodeGenerator.compile(CodeGenerator.java:145) at org.apache.fory.builder.CodecUtils.loadOrGenCodecClass(CodecUtils.java:113) at org.apache.fory.builder.CodecUtils.lambda$loadOrGenObjectCodecClass$0(CodecUtils.java:53) at org.apache.fory.builder.CodecUtils.loadSerializer(CodecUtils.java:164) ... 172 common frames omitted Wrapped by: java.lang.RuntimeException: java.lang.UnsupportedOperationException: Class class java.lang.Package doesn't support serialization. at org.apache.fory.builder.CodecUtils.loadSerializer(CodecUtils.java:170) at org.apache.fory.builder.CodecUtils.loadOrGenObjectCodecClass(CodecUtils.java:50) at org.apache.fory.serializer.CodegenSerializer.loadCodegenSerializer(CodegenSerializer.java:49) ... 170 common frames omitted Wrapped by: java.lang.RuntimeException: Create sequential serializer failed, class: class org.hibernate.boot.registry.classloading.internal.AggregatedClassLoader at org.apache.fory.serializer.CodegenSerializer.loadCodegenSerializer(CodegenSerializer.java:52) at org.apache.fory.resolver.ClassResolver.lambda$getObjectSerializerClass$3(ClassResolver.java:1024) at org.apache.fory.builder.JITContext.registerSerializerJITCallback(JITContext.java:121) at org.apache.fory.resolver.ClassResolver.getObjectSerializerClass(ClassResolver.java:1022) at org.apache.fory.resolver.ClassResolver.getSerializerClass(ClassResolver.java:976) at org.apache.fory.resolver.ClassResolver.getSerializerClass(ClassResolver.java:854) at org.apache.fory.resolver.ClassResolver.createSerializer(ClassResolver.java:1260) at org.apache.fory.resolver.ClassResolver.getOrUpdateClassInfo(ClassResolver.java:1182) at org.apache.fory.Fory.copyObject(Fory.java:1393) at org.apache.fory.serializer.AbstractObjectSerializer.copyFields(AbstractObjectSerializer.java:788) at org.apache.fory.serializer.AbstractObjectSerializer.copy(AbstractObjectSerializer.java:702) at org.apache.fory.Fory.copyObject(Fory.java:1488) at org.apache.fory.Fory.copyObject(Fory.java:1448) at org.apache.fory.serializer.AbstractObjectSerializer.copyFields(AbstractObjectSerializer.java:788) at org.apache.fory.serializer.AbstractObjectSerializer.copy(AbstractObjectSerializer.java:702) at org.apache.fory.Fory.copyObject(Fory.java:1488) at org.apache.fory.Fory.copyObject(Fory.java:1448) at org.apache.fory.serializer.AbstractObjectSerializer.copyFields(AbstractObjectSerializer.java:788) at org.apache.fory.serializer.AbstractObjectSerializer.copy(AbstractObjectSerializer.java:702) at org.apache.fory.Fory.copyObject(Fory.java:1488) at org.apache.fory.Fory.copyObject(Fory.java:1448) at org.apache.fory.serializer.AbstractObjectSerializer.copyFields(AbstractObjectSerializer.java:788) at org.apache.fory.serializer.AbstractObjectSerializer.copy(AbstractObjectSerializer.java:702) at org.apache.fory.Fory.copyObject(Fory.java:1488) at org.apache.fory.serializer.collection.CollectionSerializers$DefaultJavaCollectionSerializer.copy(CollectionSerializers.java:734) at org.apache.fory.Fory.copyObject(Fory.java:1488) at org.apache.fory.Fory.copyObject(Fory.java:1448) at org.apache.fory.serializer.AbstractObjectSerializer.copyFields(AbstractObjectSerializer.java:788) at org.apache.fory.serializer.AbstractObjectSerializer.copy(AbstractObjectSerializer.java:702) at org.apache.fory.Fory.copyObject(Fory.java:1488) at org.apache.fory.Fory.copyObject(Fory.java:1448) at org.apache.fory.serializer.AbstractObjectSerializer.copyFields(AbstractObjectSerializer.java:788) at org.apache.fory.serializer.AbstractObjectSerializer.copy(AbstractObjectSerializer.java:702) at org.apache.fory.Fory.copyObject(Fory.java:1488) at org.apache.fory.Fory.copyObject(Fory.java:1448) at org.apache.fory.Fory.copy(Fory.java:1372) ... 135 common frames omitted Wrapped by: org.apache.fory.exception.CopyException: java.lang.RuntimeException: Create sequential serializer failed, class: class org.hibernate.boot.registry.classloading.internal.AggregatedClassLoader at org.apache.fory.Fory.processCopyError(Fory.java:373)

Component(s)

Java

Minimal reproduce step

Trying to just copy the object fails.

What did you expect to see?

A successful deepCopy of the object.

What did you see instead?

The given exception.

Anything Else?

No response

Are you willing to submit a PR?

  • I'm willing to submit a PR!

Guia do colaborador