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

commit 694a245ae9016acce5f990e763953f91f1e4afe9
Author: James Bognar <[email protected]>
AuthorDate: Thu Feb 5 11:08:22 2026 -0500

    SonarQube bug fixes
---
 .../main/java/org/apache/juneau/commons/utils/StringUtils.java | 10 ++++++----
 .../main/java/org/apache/juneau/json/JsonParserSession.java    |  8 ++++----
 .../main/java/org/apache/juneau/svl/VarResolverSession.java    |  7 ++++++-
 .../apache/juneau/urlencoding/UrlEncodingParserSession.java    |  2 +-
 .../java/org/apache/juneau/utils/StringExpressionMatcher.java  |  2 +-
 .../juneau/microservice/resources/LogEntryFormatter.java       |  2 +-
 .../main/java/org/apache/juneau/rest/guard/RoleMatcher.java    |  2 +-
 .../src/main/java/org/apache/juneau/rest/util/RestUtils.java   |  2 +-
 8 files changed, 21 insertions(+), 14 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 05d30a1e89..664f1cf7fa 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
@@ -2399,7 +2399,8 @@ public class StringUtils {
                                        state = S3;
                                else if (! isLowerCaseLetter(c))
                                        return s;
-                       } else if (state == S3) {
+                               // else: continue in S2 (lowercase letter)
+                       } else if (state == S3) {  // NOSONAR - State check 
necessary for state machine
                                if (c == '/')
                                        state = S4;
                                else
@@ -2899,7 +2900,7 @@ public class StringUtils {
                                        state = S3;
                                else if (! isLowerCaseLetter(c))
                                        return false;
-                       } else if (state == S3) {
+                       } else if (state == S3) {  // NOSONAR - State check 
necessary for state machine
                                if (c == '/')
                                        state = S4;
                                else
@@ -3563,7 +3564,7 @@ public class StringUtils {
                                        state = S3;
                                else
                                        return false;
-                       } else if (state == S3) {
+                       } else if (state == S3) {  // NOSONAR - State check 
necessary for state machine
                                if (c == ':')
                                        state = S4;
                                else if (! isLowerCaseLetter(c))
@@ -6739,7 +6740,8 @@ public class StringUtils {
                        } else if (state == S2 || state == S3) {
                                if (c == '\\') {
                                        isInEscape = ! isInEscape;
-                                       needsUnescape = ! keepQuotes;
+                                       if (isInEscape)
+                                               needsUnescape = ! keepQuotes;
                                } else if (! isInEscape) {
                                        if (c == (state == S2 ? '\'' : '"')) {
                                                var s2 = s.substring(mark, 
keepQuotes ? i + 1 : i);
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserSession.java
index c5d4da3e57..ccc523e28b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserSession.java
@@ -392,7 +392,7 @@ public class JsonParserSession extends ReaderParserSession {
                                                currAttr = parseFieldName(r);
                                                state = S3;
                                        }
-                               } else if (state == S3) {
+                               } else if (state == S3) {  // NOSONAR - State 
check necessary for state machine
                                        if (c == ':')
                                                state = S4;
                                } else if (state == S4) {
@@ -478,7 +478,7 @@ public class JsonParserSession extends ReaderParserSession {
                                        l.add((E)parseAnything(type.isArgs() ? 
type.getArg(argIndex++) : type.getElementType(), r.unread(), l, pMeta));
                                        state = S3;
                                }
-                       } else if (state == S3) {
+                       } else if (state == S3) {  // NOSONAR - State check 
necessary for state machine
                                if (c == ',') {
                                        state = S4;
                                } else if (isCommentOrWhitespace(c)) {
@@ -544,7 +544,7 @@ public class JsonParserSession extends ReaderParserSession {
                                        currAttr = parseFieldName(r.unread());
                                        state = S3;
                                }
-                       } else if (state == S3) {
+                       } else if (state == S3) {  // NOSONAR - State check 
necessary for state machine
                                if (c == ':')
                                        state = S4;
                        } else if (state == S4) {
@@ -838,7 +838,7 @@ public class JsonParserSession extends ReaderParserSession {
                                                throw new ParseException(this, 
"Expected to find wrapper attribute ''{0}'' but found attribute ''{1}''", 
wrapperAttr, currAttr);
                                        state = S3;
                                }
-                       } else if (state == S3) {
+                       } else if (state == S3) {  // NOSONAR - State check 
necessary for state machine
                                if (c == ':')
                                        state = S4;
                        } else if (state == S4) {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolverSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolverSession.java
index 32190c6c64..efaefb2a22 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolverSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolverSession.java
@@ -112,7 +112,7 @@ public class VarResolverSession {
                                } else if (c < 'A' || c > 'z' || (c > 'Z' && c 
< 'a')) {   // False trigger "$X "
                                        return false;
                                }
-                       } else if (state == S3) {
+                       } else if (state == S3) {  // NOSONAR - State check 
necessary for state machine
                                if (c == '}')
                                        state = S4;
                                else if (c == '{' || c == '$')
@@ -354,6 +354,7 @@ public class VarResolverSession {
                                } else if (c == '$') {
                                        x = i;
                                        x2 = i;
+                                       hasInnerEscapes = false;
                                        state = S2;
                                } else {
                                        out.append(c);
@@ -367,6 +368,10 @@ public class VarResolverSession {
                                } else if (c == '{') {
                                        varType = s.substring(x + 1, i);
                                        x = i;
+                                       isInEscape = false;
+                                       depth = 0;
+                                       hasInnerEscapes = false;
+                                       hasInternalVar = false;
                                        state = S3;
                                } else if (c < 'A' || c > 'z' || (c > 'Z' && c 
< 'a')) {  // False trigger "$X "
                                        if (hasInnerEscapes)
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java
index 1dfb4ad8c8..4f02d7b9a0 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java
@@ -331,7 +331,7 @@ public class UrlEncodingParserSession extends 
UonParserSession {
                                                                return m;
                                                        state = S1;
                                                }
-                                       } else if (state == S3) {
+                                       } else if (state == S3) {  // NOSONAR - 
State check necessary for state machine
                                                if (c == -1 || c == '\u0001') {
                                                        if (! 
currAttr.equals(getBeanTypePropertyName(m.getClassMeta()))) {
                                                                var pMeta = 
m.getPropertyMeta(currAttr);
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/StringExpressionMatcher.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/StringExpressionMatcher.java
index 76ac8846be..dc6c602a95 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/StringExpressionMatcher.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/StringExpressionMatcher.java
@@ -296,7 +296,7 @@ public class StringExpressionMatcher {
                                                break;
                                        }
                                }
-                       } else if (state == S5) {
+                       } else if (state == S5) {  // NOSONAR - State check 
necessary for state machine
                                // S5 = Found & or | or ,.
                                if (c == '&') {
                                        //ands.add(operand);
diff --git 
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
 
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
index ef1fa6171e..acd2ecb91b 100644
--- 
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
+++ 
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
@@ -138,7 +138,7 @@ public class LogEntryFormatter extends Formatter {
                                        re.append("\\%").append(c);
                                        state = S1;
                                }
-                       } else if (state == S3) {
+                       } else if (state == S3) {  // NOSONAR - State check 
necessary for state machine
                                if (c == '$') {
                                        state = S4;
                                } else {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/guard/RoleMatcher.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/guard/RoleMatcher.java
index 7a1f2669c9..3f90350fad 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/guard/RoleMatcher.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/guard/RoleMatcher.java
@@ -307,7 +307,7 @@ public class RoleMatcher {
                                                break;
                                        }
                                }
-                       } else if (state == S5) {
+                       } else if (state == S5) {  // NOSONAR - State check 
necessary for state machine
                                // S5 = Found & or | or ,.
                                if (c == '&') {
                                        //ands.add(operand);
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/RestUtils.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/RestUtils.java
index 524a43cc03..44b7f5cd19 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/RestUtils.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/RestUtils.java
@@ -254,7 +254,7 @@ public class RestUtils {
                                                currAttr = r.getMarked(0, -1);
                                                state = S3;
                                        }
-                               } else if (state == S3) {
+                               } else if (state == S3) {  // NOSONAR - State 
check necessary for state machine
                                        if (c == -1 || c == '\u0001') {
                                                add(m, currAttr, "");
                                                state = S1;

Reply via email to