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

commit 4f3a44d6810f31d99a39f8cfcd3056f9d0853a74
Author: James Bognar <[email protected]>
AuthorDate: Wed Feb 18 14:27:56 2026 -0500

    SonarQube bug fixes
---
 .../java/org/apache/juneau/commons/utils/StringUtils.java    | 12 +++++++-----
 .../java/org/apache/juneau/msgpack/MsgPackOutputStream.java  |  3 ++-
 .../src/main/java/org/apache/juneau/uon/UonWriter.java       |  2 +-
 .../src/main/java/org/apache/juneau/xml/XmlUtils.java        |  1 +
 .../main/java/org/apache/juneau/http/header/HeaderList.java  |  3 ++-
 .../src/main/java/org/apache/juneau/http/part/PartList.java  |  3 ++-
 .../src/main/java/org/apache/juneau/rest/RestContext.java    |  1 +
 7 files changed, 16 insertions(+), 9 deletions(-)

diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java
index 0d95716bb1..81d89a26f1 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java
@@ -4268,6 +4268,7 @@ public class StringUtils {
         * @param str The string to count lines in. Can be <jk>null</jk>.
         * @return The number of lines, or <c>0</c> if the string is 
<jk>null</jk> or empty.
         */
+       @SuppressWarnings("java:S127") // Loop counter advances to skip \r\n as 
single line break
        public static int lineCount(String str) {
                if (isEmpty(str))
                        return 0;
@@ -4279,9 +4280,8 @@ public class StringUtils {
                                count++;
                        } else if (c == '\r') {
                                // Handle \r\n as a single line break
-                               if (i + 1 < str.length() && str.charAt(i + 1) 
== '\n') {
-                                       i++; // Skip the \n
-                               }
+                               if (i + 1 < str.length() && str.charAt(i + 1) 
== '\n')
+                                       i++;
                                count++;
                        }
                }
@@ -7486,7 +7486,8 @@ public class StringUtils {
         * @return A new string if characters were removed, or the same string 
if not or if the input was <jk>null</jk>.
         */
        @SuppressWarnings({
-               "java:S3776" // Cognitive complexity acceptable for character 
unescaping logic
+               "java:S127",  // Loop counter advances to skip escape sequences
+               "java:S3776"  // Cognitive complexity acceptable for character 
unescaping logic
        })
        public static String unescapeChars(String s, AsciiSet escaped) {
                if (s == null || s.isEmpty())
@@ -7681,7 +7682,8 @@ public class StringUtils {
         * @return The URL encoded string, or <jk>null</jk> if the object was 
null.
         */
        @SuppressWarnings({
-               "java:S3776" // Cognitive complexity acceptable for URL path 
encoding
+               "java:S127",  // Loop counter advances variably for surrogate 
pairs and multi-byte sequences
+               "java:S3776"  // Cognitive complexity acceptable for URL path 
encoding
        })
        public static String urlEncodePath(Object o) {
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackOutputStream.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackOutputStream.java
index f4953f30f1..9b0a1afdc4 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackOutputStream.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackOutputStream.java
@@ -63,6 +63,7 @@ public class MsgPackOutputStream extends OutputStream {
                }
        }
 
+       @SuppressWarnings("java:S127") // Loop counter advances for surrogate 
pairs
        private static int getUtf8ByteLength(CharSequence cs) {
                var count = 0;
                for (int i = 0, len = cs.length(); i < len; i++) {
@@ -81,7 +82,7 @@ public class MsgPackOutputStream extends OutputStream {
                return count;
        }
 
-       @SuppressWarnings("java:S1172") // Parameter out is unused but kept for 
method signature consistency
+       @SuppressWarnings({"java:S1172", "java:S127"}) // Parameter out unused; 
loop counter advances for surrogate pairs
        private int writeUtf8To(CharSequence in, OutputStream out) {
                var count = 0;
                for (int i = 0, len = in.length(); i < len; i++) {
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 13a1229bfe..946db490c7 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
@@ -149,7 +149,7 @@ public class UonWriter extends SerializerWriter {
         * @param isTopAttrName If this is a top-level attribute name we're 
serializing.
         * @return This object.
         */
-       @SuppressWarnings("java:S3776")
+       @SuppressWarnings({"java:S127", "java:S3776"}) // Loop counter advances 
for surrogate pairs
        public UonWriter appendObject(Object o, boolean isTopAttrName) {
 
                if (o instanceof Boolean)
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlUtils.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlUtils.java
index c5850887dc..82d2c93e57 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlUtils.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlUtils.java
@@ -105,6 +105,7 @@ public class XmlUtils {
         * @param sb The string builder to use as a scratch pad.
         * @return The decoded string.
         */
+       @SuppressWarnings("java:S127") // Loop counter advances to skip _xXXXX_ 
escape sequences
        public static String decode(String value, StringBuilder sb) {
                if (value == null)
                        return null;
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/HeaderList.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/HeaderList.java
index 6cda9962b0..7e9798bd0a 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/HeaderList.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/HeaderList.java
@@ -731,6 +731,7 @@ public class HeaderList extends ControlledArrayList<Header> 
{
         * @param value The headers to replace.  <jk>null</jk> values are 
ignored.
         * @return This object.
         */
+       @SuppressWarnings("java:S127") // Loop counter j decrements when 
removing elements
        public HeaderList set(Header value) {
                if (nn(value)) {
                        var replaced = false;
@@ -778,7 +779,7 @@ public class HeaderList extends ControlledArrayList<Header> 
{
         * @param values The headers to replace.  <jk>null</jk> values are 
ignored.
         * @return This object.
         */
-       @SuppressWarnings("java:S3776")
+       @SuppressWarnings({"java:S127", "java:S3776"}) // S127: loop counter j2 
decrements when removing
        public HeaderList set(List<Header> values) {
 
                if (nn(values)) {
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/part/PartList.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/part/PartList.java
index 28f19b6f55..9f0ef046f8 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/part/PartList.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/part/PartList.java
@@ -705,7 +705,7 @@ public class PartList extends 
ControlledArrayList<NameValuePair> {
         * @param values The parts to replace.  <jk>null</jk> values are 
ignored.
         * @return This object.
         */
-       @SuppressWarnings("java:S3776")
+       @SuppressWarnings({"java:S127", "java:S3776"}) // S127: loop counter j2 
decrements when removing
        public PartList set(List<NameValuePair> values) {
 
                if (nn(values)) {
@@ -740,6 +740,7 @@ public class PartList extends 
ControlledArrayList<NameValuePair> {
         * @param value The part to replace.  <jk>null</jk> values are ignored.
         * @return This object.
         */
+       @SuppressWarnings("java:S127") // Loop counter j decrements when 
removing elements
        public PartList set(NameValuePair value) {
                if (nn(value)) {
                        var replaced = false;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
index e8d5219874..5c38f83736 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -6201,6 +6201,7 @@ public class RestContext extends Context {
         * @throws BasicHttpException Non-200 response.
         * @throws NotImplemented No registered response processors could 
handle the call.
         */
+       @SuppressWarnings("java:S127") // Loop counter i resets to -1 on RESTART
        protected void processResponse(RestOpSession opSession) throws 
IOException, BasicHttpException, NotImplemented {
 
                // Loop until we find the correct processor for the POJO.

Reply via email to