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);