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 5693c43925 SonarQube bug fixes
5693c43925 is described below
commit 5693c439252394e3e85c1db2145b89f0831d4c93
Author: James Bognar <[email protected]>
AuthorDate: Wed Feb 4 18:18:51 2026 -0500
SonarQube bug fixes
---
.../apache/juneau/bean/openapi3/ui/OpenApiUI.java | 5 ++--
.../org/apache/juneau/commons/utils/Utils.java | 21 +++++++++++++++
.../main/java/org/apache/juneau/config/Config.java | 2 +-
.../main/java/org/apache/juneau/BeanSession.java | 30 ++++++++++++----------
.../org/apache/juneau/httppart/HttpPartSchema.java | 4 +--
.../main/java/org/apache/juneau/uon/UonWriter.java | 2 +-
.../apache/juneau/xml/XmlSerializerSession.java | 2 +-
.../microservice/jetty/JettyMicroservice.java | 3 ++-
.../apache/juneau/rest/client/ResponseContent.java | 2 +-
.../apache/juneau/rest/client/RestResponse.java | 2 +-
.../juneau/rest/mock/MockServletResponse.java | 1 +
.../java/org/apache/juneau/rest/RestResponse.java | 2 +-
.../juneau/bean/swagger/SwaggerBuilder_Test.java | 1 +
.../juneau/bean/swagger/ui/SwaggerUI_Test.java | 1 +
.../commons/annotation/AnnotationObject_Test.java | 2 +-
.../juneau/commons/collections/HashKey_Test.java | 1 +
.../juneau/commons/collections/Lists_Test.java | 1 +
.../juneau/commons/collections/Maps_Test.java | 1 +
.../juneau/commons/collections/Sets_Test.java | 1 +
.../juneau/commons/inject/BasicBeanStore_Test.java | 1 +
.../apache/juneau/commons/io/LocalFile_Test.java | 1 +
.../apache/juneau/commons/lang/AsciiMap_Test.java | 1 +
.../apache/juneau/commons/lang/AsciiSet_Test.java | 1 +
.../apache/juneau/commons/lang/HashCode_Test.java | 1 +
.../apache/juneau/commons/lang/Version_Test.java | 1 +
.../commons/reflect/ConstructorInfo_Test.java | 1 +
.../org/apache/juneau/config/ConfigMap_Test.java | 1 +
.../java/org/apache/juneau/cp/Messages_Test.java | 1 +
.../juneau/csv/annotation/CsvConfig_Test.java | 1 +
.../apache/juneau/http/BasicHttpResource_Test.java | 2 +-
.../apache/juneau/junit/bct/BctConfig_Test.java | 1 +
.../juneau/rest/annotation/FormData_Test.java | 1 +
.../juneau/rest/annotation/HasQuery_Test.java | 1 +
.../client/RestClient_Config_Context_Test.java | 1 +
.../org/apache/juneau/xml/XmlCollapsed_Test.java | 2 +-
sonar-project.properties | 10 +-------
36 files changed, 75 insertions(+), 37 deletions(-)
diff --git
a/juneau-bean/juneau-bean-openapi-v3/src/main/java/org/apache/juneau/bean/openapi3/ui/OpenApiUI.java
b/juneau-bean/juneau-bean-openapi-v3/src/main/java/org/apache/juneau/bean/openapi3/ui/OpenApiUI.java
index dab1887863..43c3f61169 100644
---
a/juneau-bean/juneau-bean-openapi-v3/src/main/java/org/apache/juneau/bean/openapi3/ui/OpenApiUI.java
+++
b/juneau-bean/juneau-bean-openapi-v3/src/main/java/org/apache/juneau/bean/openapi3/ui/OpenApiUI.java
@@ -233,8 +233,9 @@ public class OpenApiUI extends ObjectSwap<OpenApi,Div> {
private static Div opBlock(Session s, String path, String opName,
Operation op) {
- var opClass = nn(op.getDeprecated()) && op.getDeprecated() ?
"deprecated" : opName.toLowerCase();
- if (! (nn(op.getDeprecated()) && op.getDeprecated()) && !
STANDARD_METHODS.contains(opClass))
+ boolean deprecated = isTrue(op.getDeprecated());
+ var opClass = deprecated ? "deprecated" : opName.toLowerCase();
+ if (! deprecated && ! STANDARD_METHODS.contains(opClass))
opClass = "other";
return div()._class("op-block op-block-closed " +
opClass).children(opBlockSummary(path, opName, op), div(tableContainer(s,
op))._class("op-block-contents"));
diff --git
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/Utils.java
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/Utils.java
index 79780d7bab..fb32edb989 100644
---
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/Utils.java
+++
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/Utils.java
@@ -1330,6 +1330,27 @@ public class Utils {
return Boolean.TRUE.equals(value);
}
+ /**
+ * Checks if the specified Boolean is not <jk>null</jk> and is
<jk>false</jk>.
+ *
+ * <p>
+ * This is a null-safe way to check if a Boolean wrapper is false.
Returns <jk>false</jk> if
+ * the value is <jk>null</jk> or <jk>true</jk>.
+ *
+ * <h5 class='section'>Example:</h5>
+ * <p class='bjava'>
+ * isFalse(<jk>false</jk>); <jc>// true</jc>
+ * isFalse(<jk>true</jk>); <jc>// false</jc>
+ * isFalse(<jk>null</jk>); <jc>// false</jc>
+ * </p>
+ *
+ * @param value The value being checked.
+ * @return <jk>true</jk> if the specified boolean is not <jk>null</jk>
and is <jk>false</jk>.
+ */
+ public static boolean isFalse(Object value) {
+ return Boolean.FALSE.equals(value);
+ }
+
/**
* Convenience method for calling {@link StringUtils#lowerCase(String)}.
*
diff --git
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
index d4f786cfa8..84e853b4e6 100644
---
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
+++
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
@@ -532,7 +532,7 @@ public class Config extends Context implements
ConfigEventListener {
for (var n : getCandidateSystemDefaultConfigNames()) {
var config = find(n);
if (nn(config)) {
- if (! DISABLE_AUTO_SYSTEM_PROPS.get())
+ if (! isTrue(DISABLE_AUTO_SYSTEM_PROPS.get()))
config.setSystemProperties();
return config;
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
index d72f2cc28f..4f675aa131 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
@@ -1215,18 +1215,19 @@ public class BeanSession extends ContextSession {
return
(T)Byte.valueOf(n.byteValue());
} else if (from.isBoolean()) {
var b = (Boolean)value;
+ boolean b2 = isTrue(b);
if (tc == Integer.TYPE)
- return
(T)(Integer.valueOf(b ? 1 : 0));
+ return
(T)(Integer.valueOf(b2 ? 1 : 0));
if (tc == Short.TYPE)
- return
(T)(Short.valueOf(b ? (short)1 : 0));
+ return
(T)(Short.valueOf(b2 ? (short)1 : 0));
if (tc == Long.TYPE)
- return
(T)(Long.valueOf(b ? 1L : 0));
+ return
(T)(Long.valueOf(b2 ? 1L : 0));
if (tc == Float.TYPE)
- return
(T)(Float.valueOf(b ? 1f : 0));
+ return
(T)(Float.valueOf(b2 ? 1f : 0));
if (tc == Double.TYPE)
- return
(T)(Double.valueOf(b ? 1d : 0));
+ return
(T)(Double.valueOf(b2 ? 1d : 0));
if (tc == Byte.TYPE)
- return
(T)(Byte.valueOf(b ? (byte)1 : 0));
+ return
(T)(Byte.valueOf(b2 ? (byte)1 : 0));
} else if (isNullOrEmpty(value)) {
return to.getPrimitiveDefault();
} else {
@@ -1293,22 +1294,23 @@ public class BeanSession extends ContextSession {
return (T)new
AtomicLong(n.intValue());
} else if (from.isBoolean()) {
var b = (Boolean)value;
+ boolean b2 = isTrue(b);
if (tc == Integer.class)
- return (T)Integer.valueOf(b ? 1
: 0);
+ return (T)Integer.valueOf(b2 ?
1 : 0);
if (tc == Short.class)
- return (T)Short.valueOf(b ?
(short)1 : 0);
+ return (T)Short.valueOf(b2 ?
(short)1 : 0);
if (tc == Long.class)
- return (T)Long.valueOf(b ? 1 :
0);
+ return (T)Long.valueOf(b2 ? 1 :
0);
if (tc == Float.class)
- return (T)Float.valueOf(b ? 1 :
0);
+ return (T)Float.valueOf(b2 ? 1
: 0);
if (tc == Double.class)
- return (T)Double.valueOf(b ? 1
: 0);
+ return (T)Double.valueOf(b2 ? 1
: 0);
if (tc == Byte.class)
- return (T)Byte.valueOf(b ?
(byte)1 : 0);
+ return (T)Byte.valueOf(b2 ?
(byte)1 : 0);
if (tc == AtomicInteger.class)
- return (T)new AtomicInteger(b ?
1 : 0);
+ return (T)new AtomicInteger(b2
? 1 : 0);
if (tc == AtomicLong.class)
- return (T)new AtomicLong(b ? 1
: 0);
+ return (T)new AtomicLong(b2 ? 1
: 0);
} else if (isNullOrEmpty(value)) {
return null;
} else if (! hasMutater(from, to)) {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
index ea5910ad1d..cdf53731f7 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
@@ -2930,7 +2930,7 @@ public class HttpPartSchema {
Boolean minInclusive =
getAnnotationValue(a, "inclusive", Boolean.class);
if (nn(minVal)) {
minimum(toNumber(minVal));
- if
(Boolean.FALSE.equals(minInclusive))
+ if
(isFalse(minInclusive))
exclusiveMinimum(true);
}
break;
@@ -2939,7 +2939,7 @@ public class HttpPartSchema {
Boolean maxInclusive =
getAnnotationValue(a, "inclusive", Boolean.class);
if (nn(maxVal)) {
maximum(toNumber(maxVal));
- if
(Boolean.FALSE.equals(maxInclusive))
+ if
(isFalse(maxInclusive))
exclusiveMaximum(true);
}
break;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonWriter.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonWriter.java
index 5d882ec2e4..541209189a 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonWriter.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonWriter.java
@@ -37,7 +37,7 @@ import org.apache.juneau.serializer.*;
* </ul>
*/
-@SuppressWarnings("resource")
+@SuppressWarnings({"resource", "java:S4144"})
public class UonWriter extends SerializerWriter {
// Characters that do not need to be URL-encoded in strings.
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
index ef556f7dfa..c8ee313b94 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
@@ -532,7 +532,7 @@ public class XmlSerializerSession extends
WriterSerializerSession {
var currentIsTextNode = isTextNode(x);
// Insert delimiter between consecutive text nodes
- if (previousWasTextNode.get() && currentIsTextNode &&
nn(textNodeDelimiter) && ! textNodeDelimiter.isEmpty()) {
+ if (isTrue(previousWasTextNode.get()) &&
currentIsTextNode && nn(textNodeDelimiter) && ! textNodeDelimiter.isEmpty()) {
out.append(textNodeDelimiter);
}
diff --git
a/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
b/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
index 3ec15c7a96..29d00233b9 100644
---
a/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
+++
b/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
@@ -555,13 +555,14 @@ public class JettyMicroservice extends Microservice {
var jettyXml = builder.jettyXml;
var jettyConfig =
cf.get("Jetty/config").orElse(mf.getString("Jetty-Config", "jetty.xml"));
var resolveVars = firstNonNull(builder.jettyXmlResolveVars,
cf.get("Jetty/resolveVars").asBoolean().orElse(false));
+ boolean resolveVars2 = isTrue(resolveVars);
if (jettyXml == null)
jettyXml = loadSystemResourceAsString("jetty.xml", ".",
"files");
if (jettyXml == null)
throw rex("jetty.xml file ''{0}'' was not found on the
file system or classpath.", jettyConfig);
- if (resolveVars)
+ if (resolveVars2)
jettyXml = vr.resolve(jettyXml);
getLogger().info(jettyXml);
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseContent.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseContent.java
index 6ce29a75d2..1af629f889 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseContent.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseContent.java
@@ -53,7 +53,7 @@ import org.apache.juneau.rest.client.assertion.*;
* <li class='link'><a class="doclink"
href="https://juneau.apache.org/docs/topics/JuneauRestClientBasics">juneau-rest-client
Basics</a>
* </ul>
*/
-@SuppressWarnings("resource")
+@SuppressWarnings({"resource", "java:S4144"})
public class ResponseContent implements HttpEntity {
private static final HttpEntity NULL_ENTITY = new HttpEntity() {
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestResponse.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestResponse.java
index 86dfe77f5e..c39128d190 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestResponse.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestResponse.java
@@ -74,7 +74,7 @@ import org.apache.juneau.rest.client.assertion.*;
* <li class='link'><a class="doclink"
href="https://juneau.apache.org/docs/topics/JuneauRestClientBasics">juneau-rest-client
Basics</a>
* </ul>
*/
-@SuppressWarnings("resource")
+@SuppressWarnings({"resource", "java:S4144"})
public class RestResponse implements HttpResponse, AutoCloseable {
private final RestClient client;
diff --git
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletResponse.java
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletResponse.java
index 5c7478d988..8154cd3162 100644
---
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletResponse.java
+++
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletResponse.java
@@ -37,6 +37,7 @@ import jakarta.servlet.http.*;
* <li class='link'><a class="doclink"
href="https://juneau.apache.org/docs/topics/JuneauRestMockBasics">juneau-rest-mock
Basics</a>
* </ul>
*/
+@SuppressWarnings("java:S4144")
public class MockServletResponse implements HttpServletResponse {
/**
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
index b23eb81c38..26f919a793 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
@@ -629,7 +629,7 @@ public class RestResponse extends
HttpServletResponseWrapper {
*/
public RestResponse setDebug(Boolean b) throws IOException {
request.setDebug(b);
- if (b)
+ if (isTrue(b))
inner = CachingHttpServletResponse.wrap(inner);
return this;
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/bean/swagger/SwaggerBuilder_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/bean/swagger/SwaggerBuilder_Test.java
index 00551979ca..2eb9d8a1f5 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/bean/swagger/SwaggerBuilder_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/bean/swagger/SwaggerBuilder_Test.java
@@ -26,6 +26,7 @@ import org.junit.jupiter.api.*;
* Testcase for {@link SwaggerBuilder}.
* Ensures Swagger beans are serialized to proper JSON.
*/
+@SuppressWarnings("java:S4144")
class SwaggerBuilder_Test extends TestBase {
@Test void a01_contact() {
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/bean/swagger/ui/SwaggerUI_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/bean/swagger/ui/SwaggerUI_Test.java
index c2bc1ea655..f7c8290494 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/bean/swagger/ui/SwaggerUI_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/bean/swagger/ui/SwaggerUI_Test.java
@@ -29,6 +29,7 @@ import org.junit.jupiter.api.*;
/**
* Testcase for {@link SwaggerUI}.
*/
+@SuppressWarnings("java:S4144")
class SwaggerUI_Test extends TestBase {
private final BeanSession bs = BeanContext.DEFAULT_SESSION;
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/annotation/AnnotationObject_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/annotation/AnnotationObject_Test.java
index 9e496bab85..eedd30565a 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/annotation/AnnotationObject_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/annotation/AnnotationObject_Test.java
@@ -25,7 +25,7 @@ import java.util.*;
import org.apache.juneau.*;
import org.junit.jupiter.api.*;
-@SuppressWarnings({"java:S117"})
+@SuppressWarnings({"java:S117", "java:S4144"})
class AnnotationObject_Test extends TestBase {
//------------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/HashKey_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/HashKey_Test.java
index b2d0347ffb..1d9e2974fb 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/HashKey_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/HashKey_Test.java
@@ -23,6 +23,7 @@ import java.util.*;
import org.apache.juneau.*;
import org.junit.jupiter.api.*;
+@SuppressWarnings("java:S4144")
class HashKey_Test extends TestBase {
//====================================================================================================
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Lists_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Lists_Test.java
index aedf3d759b..8f5bcfbcaa 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Lists_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Lists_Test.java
@@ -25,6 +25,7 @@ import java.util.*;
import org.apache.juneau.*;
import org.junit.jupiter.api.*;
+@SuppressWarnings("java:S4144")
class Lists_Test extends TestBase {
//-----------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Maps_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Maps_Test.java
index 992fccfc25..1ceb0b0dc9 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Maps_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Maps_Test.java
@@ -26,6 +26,7 @@ import org.apache.juneau.*;
import org.apache.juneau.junit.bct.annotations.*;
import org.junit.jupiter.api.*;
+@SuppressWarnings("java:S4144")
class Maps_Test extends TestBase {
//-----------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Sets_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Sets_Test.java
index efd57117d0..ec81e7e8eb 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Sets_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Sets_Test.java
@@ -27,6 +27,7 @@ import org.apache.juneau.*;
import org.apache.juneau.junit.bct.annotations.*;
import org.junit.jupiter.api.*;
+@SuppressWarnings("java:S4144")
class Sets_Test extends TestBase {
//-----------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/inject/BasicBeanStore_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/inject/BasicBeanStore_Test.java
index be975f8106..a32f6ef534 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/inject/BasicBeanStore_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/inject/BasicBeanStore_Test.java
@@ -24,6 +24,7 @@ import java.util.*;
import org.apache.juneau.*;
import org.junit.jupiter.api.*;
+@SuppressWarnings("java:S4144")
class BasicBeanStore_Test extends TestBase {
// Test bean classes
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/io/LocalFile_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/io/LocalFile_Test.java
index 2e48b45493..122d2c3108 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/io/LocalFile_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/io/LocalFile_Test.java
@@ -26,6 +26,7 @@ import java.util.*;
import org.apache.juneau.*;
import org.junit.jupiter.api.*;
+@SuppressWarnings("java:S4144")
class LocalFile_Test extends TestBase {
private static final Path TEST_FILE =
Paths.get("src/test/resources/files/Test3.properties");
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/lang/AsciiMap_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/lang/AsciiMap_Test.java
index 463eba08d7..ef8bf98177 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/lang/AsciiMap_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/lang/AsciiMap_Test.java
@@ -23,6 +23,7 @@ import org.junit.jupiter.api.*;
/**
* Tests for {@link AsciiMap}.
*/
+@SuppressWarnings("java:S4144")
class AsciiMap_Test {
//====================================================================================================
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/lang/AsciiSet_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/lang/AsciiSet_Test.java
index e59a704348..4476de7fcb 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/lang/AsciiSet_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/lang/AsciiSet_Test.java
@@ -24,6 +24,7 @@ import org.junit.jupiter.api.*;
/**
* Tests for {@link AsciiSet}.
*/
+@SuppressWarnings("java:S4144")
class AsciiSet_Test extends TestBase {
//====================================================================================================
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/lang/HashCode_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/lang/HashCode_Test.java
index f1d506e158..279503c34a 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/lang/HashCode_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/lang/HashCode_Test.java
@@ -27,6 +27,7 @@ import org.junit.jupiter.api.*;
/**
* Tests for {@link HashCode}.
*/
+@SuppressWarnings("java:S4144")
class HashCode_Test extends TestBase {
//====================================================================================================
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/lang/Version_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/lang/Version_Test.java
index 938407e23f..5da04730ce 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/lang/Version_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/lang/Version_Test.java
@@ -26,6 +26,7 @@ import java.util.*;
import org.apache.juneau.*;
import org.junit.jupiter.api.*;
+@SuppressWarnings("java:S4144")
class Version_Test extends TestBase {
@Test void a01_basic() {
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/reflect/ConstructorInfo_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/reflect/ConstructorInfo_Test.java
index 8e02888ccb..10b1c560fb 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/reflect/ConstructorInfo_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/reflect/ConstructorInfo_Test.java
@@ -34,6 +34,7 @@ import org.apache.juneau.annotation.Named;
import org.apache.juneau.commons.inject.*;
import org.junit.jupiter.api.*;
+@SuppressWarnings("java:S4144")
class ConstructorInfo_Test extends TestBase {
private static void check(String expected, Object o) {
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/config/ConfigMap_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/config/ConfigMap_Test.java
index c45b61b267..d3e52a34b0 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/config/ConfigMap_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/config/ConfigMap_Test.java
@@ -27,6 +27,7 @@ import org.apache.juneau.*;
import org.apache.juneau.config.store.*;
import org.junit.jupiter.api.*;
+@SuppressWarnings("java:S4144")
class ConfigMap_Test extends TestBase {
static final String ENCODED = "*";
diff --git a/juneau-utest/src/test/java/org/apache/juneau/cp/Messages_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/cp/Messages_Test.java
index f06ad04b19..909dd3ab24 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/cp/Messages_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/cp/Messages_Test.java
@@ -27,6 +27,7 @@ import org.apache.juneau.cp.test3.*;
import org.apache.juneau.cp.test4.*;
import org.junit.jupiter.api.*;
+@SuppressWarnings("java:S4144")
class Messages_Test extends TestBase {
@Test void a01_sameDirectory() {
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/csv/annotation/CsvConfig_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/csv/annotation/CsvConfig_Test.java
index f3c6730abb..905e507480 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/csv/annotation/CsvConfig_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/csv/annotation/CsvConfig_Test.java
@@ -27,6 +27,7 @@ import org.junit.jupiter.api.*;
/**
* Tests the @CsvConfig annotation.
*/
+@SuppressWarnings("java:S4144")
class CsvConfig_Test extends TestBase {
//-----------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/http/BasicHttpResource_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/http/BasicHttpResource_Test.java
index 0590d80732..921341535b 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/http/BasicHttpResource_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/http/BasicHttpResource_Test.java
@@ -30,7 +30,7 @@ import org.apache.juneau.*;
import org.apache.juneau.http.header.*;
import org.junit.jupiter.api.*;
-@SuppressWarnings("java:S5961")
+@SuppressWarnings({"java:S5961", "java:S4144"})
class BasicHttpResource_Test extends TestBase {
@Test void a01_basic() throws Exception {
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/junit/bct/BctConfig_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/junit/bct/BctConfig_Test.java
index 2a3dbaa560..09cc7245c4 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/junit/bct/BctConfig_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/junit/bct/BctConfig_Test.java
@@ -28,6 +28,7 @@ import org.junit.jupiter.api.*;
/**
* Unit tests for {@link BctConfig} annotation and extension.
*/
+@SuppressWarnings("java:S4144")
class BctConfig_Test extends TestBase {
//
====================================================================================================
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/FormData_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/FormData_Test.java
index 541e1bdf8d..af6d8341d7 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/FormData_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/FormData_Test.java
@@ -32,6 +32,7 @@ import org.apache.juneau.testutils.pojos.*;
import org.apache.juneau.urlencoding.*;
import org.junit.jupiter.api.*;
+@SuppressWarnings("java:S4144")
class FormData_Test extends TestBase {
//------------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/HasQuery_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/HasQuery_Test.java
index 7112f312cb..8d7bb44803 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/HasQuery_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/HasQuery_Test.java
@@ -22,6 +22,7 @@ import org.apache.juneau.rest.*;
import org.apache.juneau.rest.mock.*;
import org.junit.jupiter.api.*;
+@SuppressWarnings("java:S4144")
class HasQuery_Test extends TestBase {
//------------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_Context_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_Context_Test.java
index 579c837030..21c521b249 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_Context_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_Context_Test.java
@@ -30,6 +30,7 @@ import org.apache.juneau.rest.servlet.*;
import org.apache.juneau.swap.*;
import org.junit.jupiter.api.*;
+@SuppressWarnings("java:S4144")
class RestClient_Config_Context_Test extends TestBase {
@Rest
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/xml/XmlCollapsed_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/xml/XmlCollapsed_Test.java
index 201331ffa9..539a64ac9a 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/xml/XmlCollapsed_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/xml/XmlCollapsed_Test.java
@@ -28,7 +28,7 @@ import org.apache.juneau.annotation.*;
import org.apache.juneau.xml.annotation.*;
import org.junit.jupiter.api.*;
-@SuppressWarnings({"serial"})
+@SuppressWarnings({"serial", "java:S4144"})
class XmlCollapsed_Test extends TestBase {
//====================================================================================================
diff --git a/sonar-project.properties b/sonar-project.properties
index 4ce23ee9ce..45612d9af3 100644
--- a/sonar-project.properties
+++ b/sonar-project.properties
@@ -51,15 +51,7 @@ sonar.java.target=17
sonar.qualitygate.wait=true
# Rule exclusions
-# Exclude S1479 (too many case statements) globally for all files
-# Large switch expressions are sometimes necessary and intentional (e.g.,
SchemaInfo property mapping)
-# Exclude S1192 (string literals should not be duplicated) globally for all
files
-# String literal duplication is sometimes necessary for consistency (e.g.,
property names, constants)
# Exclude CSS rules - CSS files may contain valid selectors that SonarQube
doesn't recognize
-sonar.issue.ignore.multicriteria=e1,e2,e3
-sonar.issue.ignore.multicriteria.e1.ruleKey=java:S1479
-sonar.issue.ignore.multicriteria.e1.resourceKey=**/*.java
-sonar.issue.ignore.multicriteria.e2.ruleKey=java:S1192
-sonar.issue.ignore.multicriteria.e2.resourceKey=**/*.java
+sonar.issue.ignore.multicriteria=e3
sonar.issue.ignore.multicriteria.e3.ruleKey=css:*
sonar.issue.ignore.multicriteria.e3.resourceKey=**/*.css