apache/fory

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

Open

#2,941 opened on Nov 27, 2025

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

Repository metrics

Stars
 (4,419 stars)
PR merge metrics
 (PR metrics pending)

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!

Contributor guide