This is an automated email from the ASF dual-hosted git repository.
chaokunyang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fory.git
The following commit(s) were added to refs/heads/main by this push:
new 0e5f649e chore(java): skip find customized serializer when
absClassInfo is empty (#2316)
0e5f649e is described below
commit 0e5f649e56763cefa8fb8062d24cfbc730765d1f
Author: Cherish 蔡梦缘 <[email protected]>
AuthorDate: Mon Jun 9 09:25:22 2025 +0800
chore(java): skip find customized serializer when absClassInfo is empty
(#2316)
## What does this PR do?
Reduce reflection calls by skip find customized serializer when
absClassInfo is empty.
---
.../java/org/apache/fory/resolver/ClassResolver.java | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git
a/java/fory-core/src/main/java/org/apache/fory/resolver/ClassResolver.java
b/java/fory-core/src/main/java/org/apache/fory/resolver/ClassResolver.java
index 32940271..69db915f 100644
--- a/java/fory-core/src/main/java/org/apache/fory/resolver/ClassResolver.java
+++ b/java/fory-core/src/main/java/org/apache/fory/resolver/ClassResolver.java
@@ -1371,18 +1371,20 @@ public class ClassResolver implements TypeResolver {
}
// support customized serializer for abstract or interface.
- Class<?> tmpCls = cls;
- while (tmpCls != null && tmpCls != Object.class) {
- ClassInfo absClass = null;
- if ((absClass = extRegistry.absClassInfo.get(tmpCls.getSuperclass())) !=
null) {
- return absClass.serializer;
- }
- for (Class<?> tmpI : tmpCls.getInterfaces()) {
- if ((absClass = extRegistry.absClassInfo.get(tmpI)) != null) {
+ if (!extRegistry.absClassInfo.isEmpty()) {
+ Class<?> tmpCls = cls;
+ while (tmpCls != null && tmpCls != Object.class) {
+ ClassInfo absClass = null;
+ if ((absClass = extRegistry.absClassInfo.get(tmpCls.getSuperclass()))
!= null) {
return absClass.serializer;
}
+ for (Class<?> tmpI : tmpCls.getInterfaces()) {
+ if ((absClass = extRegistry.absClassInfo.get(tmpI)) != null) {
+ return absClass.serializer;
+ }
+ }
+ tmpCls = tmpCls.getSuperclass();
}
- tmpCls = tmpCls.getSuperclass();
}
Class<? extends Serializer> serializerClass = getSerializerClass(cls);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]