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 ae886f5392 SonarQube bug fixes
ae886f5392 is described below

commit ae886f5392f198bc1c211c6b08553fc58ce6d5c4
Author: James Bognar <[email protected]>
AuthorDate: Wed Feb 18 12:16:38 2026 -0500

    SonarQube bug fixes
---
 .../commons/annotation/AppliedOnClassAnnotationObject.java  |  4 ++++
 .../juneau/commons/collections/ControlledArrayList.java     | 10 ++++++++++
 .../src/main/java/org/apache/juneau/AnnotationWorkList.java | 10 ++++++++++
 .../src/main/java/org/apache/juneau/BeanPropertyValue.java  | 10 ++++++++++
 .../src/main/java/org/apache/juneau/MediaRange.java         | 11 +++++++++++
 .../java/org/apache/juneau/internal/FilteredKeyMap.java     | 11 +++++++++++
 .../java/org/apache/juneau/objecttools/ObjectSorter.java    | 10 ++++++++++
 .../main/java/org/apache/juneau/svl/ResolvingJsonMap.java   | 10 ++++++++++
 .../main/java/org/apache/juneau/http/BasicStatusLine.java   | 13 +++++++++++++
 .../main/java/org/apache/juneau/http/header/EntityTag.java  | 10 ++++++++++
 .../main/java/org/apache/juneau/http/header/EntityTags.java | 12 ++++++++++++
 .../java/org/apache/juneau/http/header/HeaderBeanMeta.java  | 11 +++++++++++
 .../main/java/org/apache/juneau/http/part/BasicPart.java    | 10 ++++++++++
 .../org/apache/juneau/http/remote/RrpcInterfaceMeta.java    | 11 +++++++++++
 .../apache/juneau/http/remote/RrpcInterfaceMethodMeta.java  | 11 +++++++++++
 .../java/org/apache/juneau/rest/util/UrlPathMatcher.java    | 10 ++++++++++
 16 files changed, 164 insertions(+)

diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/annotation/AppliedOnClassAnnotationObject.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/annotation/AppliedOnClassAnnotationObject.java
index 33024a971b..39d79aec43 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/annotation/AppliedOnClassAnnotationObject.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/annotation/AppliedOnClassAnnotationObject.java
@@ -82,6 +82,10 @@ import static 
org.apache.juneau.commons.utils.CollectionUtils.*;
  *     <li class='link'><a class="doclink" 
href="../../../../../overview-summary.html#juneau-commons.Annotations">Overview 
&gt; juneau-commons &gt; Annotations</a>
  * </ul>
  */
+// java:S1206: Intentionally inherit equals/hashCode from AnnotationObject. 
Overriding would require
+// instanceof AppliedOnClassAnnotationObject, which breaks comparison with 
declarative annotations (JDK proxies),
+// causing BeanContext/PropertyStore cache misses and schema validation 
failures (see XmlAnnotation_Test, FormData_Test).
+@SuppressWarnings("java:S1206")
 public class AppliedOnClassAnnotationObject extends AppliedAnnotationObject {
 
        private final Class<?>[] onClass;
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/ControlledArrayList.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/ControlledArrayList.java
index 1948d939dd..b118fd471b 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/ControlledArrayList.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/ControlledArrayList.java
@@ -150,6 +150,16 @@ public class ControlledArrayList<E> extends ArrayList<E> {
                this.unmodifiable = unmodifiable;
        }
 
+       @Override /* Overridden from Object */
+       public boolean equals(Object o) {
+               return this == o || (o instanceof ControlledArrayList<?> other 
&& super.equals(other) && unmodifiable == other.unmodifiable);
+       }
+
+       @Override /* Overridden from Object */
+       public int hashCode() {
+               return super.hashCode() + Boolean.hashCode(unmodifiable);
+       }
+
        /**
         * Constructor.
         *
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/AnnotationWorkList.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/AnnotationWorkList.java
index 82fce049c1..db08c054e5 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/AnnotationWorkList.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/AnnotationWorkList.java
@@ -86,6 +86,16 @@ public class AnnotationWorkList extends 
ArrayList<AnnotationWork> {
                this.vrs = assertArgNotNull(ARG_vrs, vrs);
        }
 
+       @Override /* Overridden from Object */
+       public boolean equals(Object o) {
+               return this == o || (o instanceof AnnotationWorkList other && 
super.equals(other));
+       }
+
+       @Override /* Overridden from Object */
+       public int hashCode() {
+               return super.hashCode();
+       }
+
        /**
         * Adds an entry to this list.
         *
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyValue.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyValue.java
index be1651dfca..a87df0b433 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyValue.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyValue.java
@@ -57,6 +57,16 @@ public class BeanPropertyValue implements 
Comparable<BeanPropertyValue> {
                return name.compareTo(o.name);
        }
 
+       @Override /* Overridden from Object */
+       public boolean equals(Object o) {
+               return o instanceof BeanPropertyValue other && compareTo(other) 
== 0;
+       }
+
+       @Override /* Overridden from Object */
+       public int hashCode() {
+               return name != null ? name.hashCode() : 0;
+       }
+
        /**
         * Returns the bean property metadata.
         *
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MediaRange.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MediaRange.java
index 38c0988607..146c16ed40 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MediaRange.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MediaRange.java
@@ -17,6 +17,7 @@
 package org.apache.juneau;
 
 import static org.apache.juneau.commons.utils.CollectionUtils.*;
+import static org.apache.juneau.commons.utils.Utils.*;
 
 import java.util.*;
 import java.util.function.*;
@@ -129,4 +130,14 @@ public class MediaRange extends MediaType {
        public String toString() {
                return string;
        }
+
+       @Override /* Overridden from Object */
+       public boolean equals(Object o) {
+               return o instanceof MediaRange other && eq(this, other, (x, y) 
-> eq(x.string, y.string));
+       }
+
+       @Override /* Overridden from Object */
+       public int hashCode() {
+               return string != null ? string.hashCode() : 0;
+       }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FilteredKeyMap.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FilteredKeyMap.java
index e1d2d8555b..553871458a 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FilteredKeyMap.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/FilteredKeyMap.java
@@ -17,6 +17,7 @@
 package org.apache.juneau.internal;
 
 import static org.apache.juneau.commons.utils.AssertionUtils.*;
+import static org.apache.juneau.commons.utils.Utils.*;
 
 import java.util.*;
 
@@ -92,6 +93,16 @@ public class FilteredKeyMap<K,V> extends AbstractMap<K,V> 
implements Delegate<Ma
        @Override /* Overridden from Delegate */
        public ClassMeta<Map<K,V>> getClassMeta() { return classMeta; }
 
+       @Override /* Overridden from Object */
+       public boolean equals(Object o) {
+               return o instanceof Map<?,?> o2 && eq(this, o2, (x, y) -> 
x.entrySet().equals(y.entrySet()));
+       }
+
+       @Override /* Overridden from Object */
+       public int hashCode() {
+               return entries.hashCode();
+       }
+
        private Map.Entry<K,V> createEntry(K key) {
                return new Map.Entry<>() {
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/objecttools/ObjectSorter.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/objecttools/ObjectSorter.java
index bce6b58949..1d184bbb90 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/objecttools/ObjectSorter.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/objecttools/ObjectSorter.java
@@ -82,6 +82,16 @@ public class ObjectSorter implements ObjectTool<SortArgs> {
                        return cmp(this.sortVal, ((SortEntry)o).sortVal);
                }
 
+               @Override
+               public boolean equals(Object o) {
+                       return o instanceof SortEntry other && compareTo(other) 
== 0;
+               }
+
+               @Override
+               public int hashCode() {
+                       return Objects.hashCode(sortVal);
+               }
+
                void setSort(String sortCol, boolean isDesc) {
                        this.isDesc = isDesc;
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/ResolvingJsonMap.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/ResolvingJsonMap.java
index 317497d192..d54eef6aaa 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/ResolvingJsonMap.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/ResolvingJsonMap.java
@@ -55,6 +55,16 @@ public class ResolvingJsonMap extends JsonMap {
                this.varResolver = varResolver;
        }
 
+       @Override /* Overridden from Object */
+       public boolean equals(Object o) {
+               return this == o || (o instanceof ResolvingJsonMap other && 
super.equals(o));
+       }
+
+       @Override /* Overridden from Object */
+       public int hashCode() {
+               return super.hashCode();
+       }
+
        @Override /* Overridden from JsonMap */
        public ResolvingJsonMap append(Map<String,Object> values) {
                super.append(values);
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/BasicStatusLine.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/BasicStatusLine.java
index 183f5a5889..15f88ae6fc 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/BasicStatusLine.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/BasicStatusLine.java
@@ -20,6 +20,7 @@ import static 
org.apache.juneau.commons.utils.ThrowableUtils.*;
 import static org.apache.juneau.commons.utils.Utils.*;
 
 import java.util.*;
+import java.util.Objects;
 
 import org.apache.http.*;
 import org.apache.http.impl.*;
@@ -204,6 +205,18 @@ public class BasicStatusLine implements StatusLine {
                return BasicLineFormatter.INSTANCE.formatStatusLine(null, 
this).toString();
        }
 
+       @Override
+       public boolean equals(Object o) {
+               return o instanceof BasicStatusLine other && eq(this, other, 
(x, y) ->
+                       eq(x.protocolVersion, y.protocolVersion) && 
x.statusCode == y.statusCode
+                       && eq(x.reasonPhrase, y.reasonPhrase) && eq(x.locale, 
y.locale));
+       }
+
+       @Override
+       public int hashCode() {
+               return Objects.hash(protocolVersion, statusCode, reasonPhrase, 
locale);
+       }
+
        /**
         * Throws an {@link UnsupportedOperationException} if the unmodifiable 
flag is set on this bean.
         */
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/EntityTag.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/EntityTag.java
index b172d3e608..f6882a0878 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/EntityTag.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/EntityTag.java
@@ -105,6 +105,16 @@ public class EntityTag {
         */
        public boolean isWeak() { return isWeak; }
 
+       @Override
+       public boolean equals(Object o) {
+               return o instanceof EntityTag other && eq(this, other, (x, y) 
-> x.isWeak == y.isWeak && x.isAny == y.isAny && eq(x.value, y.value));
+       }
+
+       @Override
+       public int hashCode() {
+               return (value != null ? value.hashCode() : 0) + 
Boolean.hashCode(isWeak) + Boolean.hashCode(isAny);
+       }
+
        @Override
        public String toString() {
                return (isWeak ? "W/" : "") + (isAny() ? "*" : ('"' + value + 
'"'));
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/EntityTags.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/EntityTags.java
index c10e362516..94345367ed 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/EntityTags.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/EntityTags.java
@@ -18,6 +18,8 @@ package org.apache.juneau.http.header;
 
 import static org.apache.juneau.commons.utils.CollectionUtils.*;
 import static org.apache.juneau.commons.utils.StringUtils.*;
+import static org.apache.juneau.commons.utils.Utils.*;
+
 import java.util.*;
 
 import org.apache.juneau.annotation.*;
@@ -101,6 +103,16 @@ public class EntityTags {
                return u(l(value));
        }
 
+       @Override
+       public boolean equals(Object o) {
+               return o instanceof EntityTags other && eq(this, other, (x, y) 
-> Arrays.equals(x.value, y.value));
+       }
+
+       @Override
+       public int hashCode() {
+               return Arrays.hashCode(value);
+       }
+
        @Override /* Overridden from Object */
        public String toString() {
                return string;
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/HeaderBeanMeta.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/HeaderBeanMeta.java
index 4300db8d64..655d9a8d75 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/HeaderBeanMeta.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/HeaderBeanMeta.java
@@ -20,6 +20,7 @@ import static 
org.apache.juneau.commons.utils.ThrowableUtils.*;
 import static org.apache.juneau.commons.utils.Utils.*;
 
 import java.lang.reflect.*;
+import java.util.Objects;
 import java.util.concurrent.*;
 
 import org.apache.juneau.commons.reflect.*;
@@ -155,6 +156,16 @@ public class HeaderBeanMeta<T> {
                }
        }
 
+       @Override
+       public boolean equals(Object o) {
+               return o instanceof HeaderBeanMeta<?> other && eq(this, other, 
(x, y) -> x.type == y.type);
+       }
+
+       @Override
+       public int hashCode() {
+               return Objects.hashCode(type);
+       }
+
        /**
         * Returns schema information about this header.
         *
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/part/BasicPart.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/part/BasicPart.java
index b576eaaef3..ec4acadda3 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/part/BasicPart.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/part/BasicPart.java
@@ -183,6 +183,16 @@ public class BasicPart implements NameValuePair, 
Headerable {
        @Override /* Overridden from NameValuePair */
        public String getValue() { return s(unwrap(value)); }
 
+       @Override
+       public boolean equals(Object o) {
+               return o instanceof NameValuePair nvp && eq(this, nvp, (x, y) 
-> eq(x.getName(), y.getName()) && eq(x.getValue(), y.getValue()));
+       }
+
+       @Override
+       public int hashCode() {
+               return Objects.hash(name, getValue());
+       }
+
        @Override /* Overridden from Object */
        public String toString() {
                return getName() + "=" + getValue();
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/remote/RrpcInterfaceMeta.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/remote/RrpcInterfaceMeta.java
index 331cd670b9..0e72c5b9cc 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/remote/RrpcInterfaceMeta.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/remote/RrpcInterfaceMeta.java
@@ -18,6 +18,7 @@ package org.apache.juneau.http.remote;
 
 import static org.apache.juneau.commons.utils.CollectionUtils.*;
 import static org.apache.juneau.commons.utils.StringUtils.*;
+import static org.apache.juneau.commons.utils.Utils.*;
 
 import java.lang.reflect.*;
 import java.util.*;
@@ -121,4 +122,14 @@ public class RrpcInterfaceMeta {
         *      <br>Never has leading or trailing slashes.
         */
        public String getPath() { return path; }
+
+       @Override
+       public boolean equals(Object o) {
+               return o instanceof RrpcInterfaceMeta other && eq(this, other, 
(x, y) -> x.c == y.c);
+       }
+
+       @Override
+       public int hashCode() {
+               return System.identityHashCode(c);
+       }
 }
\ No newline at end of file
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/remote/RrpcInterfaceMethodMeta.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/remote/RrpcInterfaceMethodMeta.java
index d476a05299..c5bbbe8d94 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/remote/RrpcInterfaceMethodMeta.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/remote/RrpcInterfaceMethodMeta.java
@@ -17,6 +17,7 @@
 package org.apache.juneau.http.remote;
 
 import static org.apache.juneau.commons.utils.StringUtils.*;
+import static org.apache.juneau.commons.utils.Utils.*;
 
 import java.lang.reflect.*;
 
@@ -99,4 +100,14 @@ public class RrpcInterfaceMethodMeta {
         * @return The absolute URL of the REST interface, never <jk>null</jk>.
         */
        public String getUri() { return url; }
+
+       @Override
+       public boolean equals(Object o) {
+               return o instanceof RrpcInterfaceMethodMeta other && eq(this, 
other, (x, y) -> x.method.equals(y.method));
+       }
+
+       @Override
+       public int hashCode() {
+               return method.hashCode();
+       }
 }
\ No newline at end of file
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/UrlPathMatcher.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/UrlPathMatcher.java
index 92759d8117..da50db1e4c 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/UrlPathMatcher.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/UrlPathMatcher.java
@@ -212,6 +212,16 @@ public abstract class UrlPathMatcher implements 
Comparable<UrlPathMatcher> {
                return o.getComparator().compareTo(getComparator());
        }
 
+       @Override /* Overridden from Object */
+       public boolean equals(Object o) {
+               return o instanceof UrlPathMatcher other && compareTo(other) == 
0;
+       }
+
+       @Override /* Overridden from Object */
+       public int hashCode() {
+               return getComparator() != null ? getComparator().hashCode() : 0;
+       }
+
        /**
         * Returns the variable names found in the pattern.
         *

Reply via email to