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]

Reply via email to