This is an automated email from the ASF dual-hosted git repository.

jlmonteiro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/johnzon.git


The following commit(s) were added to refs/heads/master by this push:
     new ae36bf75 feat(#419): filter out static methods from records
ae36bf75 is described below

commit ae36bf750cf78b94d8cac5b54dfcfb1f321aff14
Author: Jean-Louis Monteiro <jlmonte...@tomitribe.com>
AuthorDate: Wed Jul 2 22:17:58 2025 +0200

    feat(#419): filter out static methods from records
    
    Signed-off-by: Jean-Louis Monteiro <jlmonte...@tomitribe.com>
---
 .../org/apache/johnzon/mapper/access/MethodAccessMode.java   | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/MethodAccessMode.java
 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/MethodAccessMode.java
index 79e07acc..4c8aeeca 100644
--- 
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/MethodAccessMode.java
+++ 
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/MethodAccessMode.java
@@ -26,6 +26,7 @@ import java.beans.Introspector;
 import java.beans.PropertyDescriptor;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
 import java.lang.reflect.Type;
 import java.util.Collection;
 import java.util.HashMap;
@@ -53,6 +54,7 @@ public class MethodAccessMode extends BaseAccessMode {
         if (isRecord(clazz) || Meta.getAnnotation(clazz, JohnzonRecord.class) 
!= null) {
             readers.putAll(Stream.of(clazz.getMethods())
                 .filter(it -> it.getDeclaringClass() != Object.class && 
it.getParameterCount() == 0)
+                .filter(it -> !Modifier.isStatic(it.getModifiers()))
                 .filter(it -> !"toString".equals(it.getName()) && 
!"hashCode".equals(it.getName()))
                 .filter(it -> !isIgnored(it.getName()) && 
Meta.getAnnotation(it, JohnzonAny.class) == null)
                 .collect(toMap(m -> extractKey(m.getName(), m, null), it -> 
new MethodReader(it, it.getGenericReturnType()))));
@@ -92,10 +94,10 @@ public class MethodAccessMode extends BaseAccessMode {
             final Method writeMethod = descriptor.getWriteMethod();
             if (writeMethod != null) {
                 writers.put(extractKey(descriptor.getName(), writeMethod, 
descriptor.getReadMethod()),
-                        new MethodWriter(writeMethod, 
writeMethod.getGenericParameterTypes()[0]));
+                            new MethodWriter(writeMethod, 
writeMethod.getGenericParameterTypes()[0]));
             } else if (supportGetterAsWritter
-                    && 
Collection.class.isAssignableFrom(descriptor.getPropertyType())
-                    && descriptor.getReadMethod() != null) {
+                       && 
Collection.class.isAssignableFrom(descriptor.getPropertyType())
+                       && descriptor.getReadMethod() != null) {
                 final Method readMethod = descriptor.getReadMethod();
                 writers.put(extractKey(descriptor.getName(), readMethod, 
null), new MethodGetterAsWriter(readMethod, readMethod.getGenericReturnType()));
             }
@@ -169,8 +171,8 @@ public class MethodAccessMode extends BaseAccessMode {
         @Override
         public String toString() {
             return "MethodDecoratedType{" +
-                    "method=" + method +
-                    '}';
+                   "method=" + method +
+                   '}';
         }
     }
 

Reply via email to