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

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


The following commit(s) were added to refs/heads/master by this push:
     new 03f5e16edd Marshall module improvements
03f5e16edd is described below

commit 03f5e16edd884e6a05025d8e4ca5c4777a74bab6
Author: James Bognar <[email protected]>
AuthorDate: Thu Dec 11 09:24:23 2025 -0500

    Marshall module improvements
---
 .../juneau/commons/reflect/ConstructorInfo.java       |  8 +-------
 .../org/apache/juneau/commons/reflect/FieldInfo.java  |  8 +-------
 .../org/apache/juneau/commons/reflect/MethodInfo.java | 19 +++++++------------
 .../apache/juneau/commons/reflect/ParameterInfo.java  |  8 +-------
 .../java/org/apache/juneau/rest/RestOpContext.java    |  4 ++--
 .../java/org/apache/juneau/rest/RestOpSession.java    |  4 ++--
 6 files changed, 14 insertions(+), 37 deletions(-)

diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ConstructorInfo.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ConstructorInfo.java
index 20730cb035..f87a6378f8 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ConstructorInfo.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ConstructorInfo.java
@@ -192,13 +192,7 @@ public class ConstructorInfo extends ExecutableInfo 
implements Comparable<Constr
         */
        @Override
        public boolean equals(Object obj) {
-               if (this == obj)
-                       return true;
-               if (obj == null)
-                       return false;
-               if (obj instanceof ConstructorInfo other)
-                       return inner.equals(other.inner);
-               return false;
+               return obj instanceof ConstructorInfo other && eq(this, other, 
(x, y) -> eq(x.inner, y.inner));
        }
 
        /**
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/FieldInfo.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/FieldInfo.java
index 8cbd6523ed..6b6b990846 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/FieldInfo.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/FieldInfo.java
@@ -314,13 +314,7 @@ public class FieldInfo extends AccessibleInfo implements 
Comparable<FieldInfo>,
         */
        @Override
        public boolean equals(Object obj) {
-               if (this == obj)
-                       return true;
-               if (obj == null)
-                       return false;
-               if (obj instanceof FieldInfo other)
-                       return inner.equals(other.inner);
-               return false;
+               return obj instanceof FieldInfo other && eq(this, other, (x, y) 
-> eq(x.inner, y.inner));
        }
 
        /**
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/MethodInfo.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/MethodInfo.java
index 36b9bd67d9..772c139445 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/MethodInfo.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/MethodInfo.java
@@ -555,22 +555,17 @@ public class MethodInfo extends ExecutableInfo implements 
Comparable<MethodInfo>
         * @param obj The object to compare with.
         * @return <jk>true</jk> if the objects are equal, <jk>false</jk> 
otherwise.
         */
-//     @Override
-//     public boolean equals(Object obj) {
-//             if (this == obj)
-//                     return true;
-//             if (obj == null)
-//                     return false;
-//             if (obj instanceof MethodInfo other)
-//                     return inner.equals(other.inner);
-//             return false;
-//     }
+       @Override
+       public boolean equals(Object obj) {
+               return obj instanceof MethodInfo other && eq(this, other, (x, 
y) -> eq(x.inner, y.inner) && eq(x.declaringClass, y.declaringClass));
+       }
 
        /**
         * Returns a hash code value for this MethodInfo.
         *
         * <p>
-        * This delegates to the underlying {@link Method#hashCode()} method.
+        * This combines the hash code of the underlying {@link Method} with 
the hash code of the declaring class
+        * to ensure that methods from different subclasses that inherit the 
same method are not considered equal.
         *
         * <p>
         * This method makes MethodInfo suitable for use as keys in hash-based 
collections such as {@link HashMap}
@@ -580,7 +575,7 @@ public class MethodInfo extends ExecutableInfo implements 
Comparable<MethodInfo>
         */
        @Override
        public int hashCode() {
-               return inner.hashCode();
+               return 31 * inner.hashCode() + declaringClass.hashCode();
        }
 
        /**
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ParameterInfo.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ParameterInfo.java
index 486d92b608..02edd2e3df 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ParameterInfo.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ParameterInfo.java
@@ -475,13 +475,7 @@ public class ParameterInfo extends ElementInfo implements 
Annotatable {
         */
        @Override
        public boolean equals(Object obj) {
-               if (this == obj)
-                       return true;
-               if (obj == null)
-                       return false;
-               if (obj instanceof ParameterInfo other)
-                       return inner.equals(other.inner);
-               return false;
+               return obj instanceof ParameterInfo other && eq(this, other, 
(x, y) -> eq(x.inner, y.inner));
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
index 52d000a8ac..afa0e40ade 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
@@ -1681,7 +1681,7 @@ public class RestOpContext extends Context implements 
Comparable<RestOpContext>
                        beanStore
                                .createMethodFinder(RestGuardList.class)
                                .addBean(RestGuardList.Builder.class, v.get())
-                               .find(this::matches)
+                               .find(m -> this.matches(m))
                                .run(x -> v.get().impl(x));
                        // @formatter:on
 
@@ -2292,7 +2292,7 @@ public class RestOpContext extends Context implements 
Comparable<RestOpContext>
 
        @Override /* Overridden from Object */
        public boolean equals(Object o) {
-               return (o instanceof RestOpContext o2) && eq(this, o2, (x, y) 
-> x.method.equals(y.method));
+               return (o instanceof RestOpContext o2) && eq(this, o2, (x, y) 
-> eq(x.method, y.method));
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java
index ccd5ff5b35..b2c2afb071 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java
@@ -189,10 +189,10 @@ public class RestOpSession extends ContextSession {
         * @throws Throwable Any throwable can be thrown.
         */
        public void run() throws Throwable {
-
-               for (var guard : ctx.getGuards())
+               for (var guard : ctx.getGuards()) {
                        if (! guard.guard(req, res))
                                return;
+               }
 
                ctx.getMethodInvoker().invoke(this);
 

Reply via email to