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 80cc921564 SonarQube bug fixes
80cc921564 is described below
commit 80cc921564b80846f96aecadc7858014c8ebfe8b
Author: James Bognar <[email protected]>
AuthorDate: Wed Feb 4 15:55:21 2026 -0500
SonarQube bug fixes
---
.gitignore | 1 +
SONARQUBE_ISSUES_SUMMARY.md | 181 ---------------------
.../apache/juneau/commons/inject/BeanCreator2.java | 2 +-
.../apache/juneau/commons/lang/StringFormat.java | 4 +-
.../juneau/commons/reflect/AnnotationProvider.java | 1 +
.../apache/juneau/commons/reflect/ClassInfo.java | 2 +-
.../juneau/commons/reflect/ExecutableInfo.java | 2 +-
.../juneau/commons/reflect/ParameterInfo.java | 2 +-
.../juneau/commons/time/GranularZonedDateTime.java | 1 +
.../apache/juneau/commons/utils/StringUtils.java | 6 +-
.../apache/juneau/config/internal/ConfigMap.java | 2 +-
.../java/org/apache/juneau/BeanPropertyMeta.java | 2 +-
.../main/java/org/apache/juneau/BeanSession.java | 2 +-
.../apache/juneau/html/HtmlSerializerSession.java | 2 +-
.../juneau/msgpack/MsgPackParserSession.java | 2 +-
.../apache/juneau/oapi/OpenApiParserSession.java | 2 +-
.../juneau/oapi/OpenApiSerializerSession.java | 2 +-
.../org/apache/juneau/svl/VarResolverSession.java | 1 +
.../org/apache/juneau/uon/UonParserSession.java | 4 +-
.../urlencoding/UrlEncodingParserSession.java | 2 +-
.../org/apache/juneau/xml/XmlParserSession.java | 2 +-
.../apache/juneau/xml/XmlSerializerSession.java | 4 +-
.../apache/juneau/rest/mock/MockPathResolver.java | 2 +-
.../org/apache/juneau/rest/guard/RoleMatcher.java | 1 +
.../org/apache/juneau/rest/logger/CallLogger.java | 2 +-
.../rest/processor/ResponseBeanProcessor.java | 1 +
.../rest/swagger/BasicSwaggerProviderSession.java | 2 +-
27 files changed, 31 insertions(+), 206 deletions(-)
diff --git a/.gitignore b/.gitignore
index 0195981050..0fd64fbdf8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,4 @@ cursor-*
# Release script generated history files
scripts/release-history-*.json
+/SONARQUBE_ISSUES.txt
diff --git a/SONARQUBE_ISSUES_SUMMARY.md b/SONARQUBE_ISSUES_SUMMARY.md
deleted file mode 100644
index 0295ce0653..0000000000
--- a/SONARQUBE_ISSUES_SUMMARY.md
+++ /dev/null
@@ -1,181 +0,0 @@
-# SonarQube Issues Categorization Summary
-
-This document provides an overview of the categorized SonarQube issues for the
Apache Juneau project.
-
-## Summary Statistics
-
-- **Total Issues**: 3,116
-- **Total Categories**: 30
-- **Categorized**: ~78% (remaining 22% are miscellaneous "Other Issues")
-
-## Issue Categories (Sorted by Count)
-
-| Category | Count | Percentage | Priority |
-|----------|-------|------------|---------|
-| Other Issues | 2,433 | 78.1% | Low |
-| Generic Type Issues | 121 | 3.9% | Medium |
-| Empty Method Implementations | 99 | 3.2% | Medium |
-| Unused Code | 96 | 3.1% | Low |
-| Missing Private Constructors | 91 | 2.9% | Low |
-| Test Assertion Issues | 61 | 2.0% | Medium |
-| Brain Methods (Complexity) | 30 | 1.0% | High |
-| Exception Catching Issues | 30 | 1.0% | Medium |
-| Optional Access Issues | 18 | 0.6% | Medium |
-| Missing Test Assertions | 16 | 0.5% | Medium |
-| Code Duplication | 16 | 0.5% | Medium |
-| Null Check Issues | 15 | 0.5% | High |
-| Field Shadowing | 11 | 0.4% | Low |
-| Python f-string Issues | 11 | 0.4% | Low |
-| Missing @Override Annotations | 11 | 0.4% | Low |
-| Constructor Visibility Issues | 10 | 0.3% | Low |
-| Unnecessary toString() Calls | 8 | 0.3% | Low |
-| ThreadLocal Cleanup Issues | 7 | 0.2% | Medium |
-| HTML/Documentation Issues | 6 | 0.2% | Low |
-| Singleton Pattern Issues | 6 | 0.2% | Medium |
-| Security Issues | 6 | 0.2% | High |
-| Missing Test Coverage | 3 | 0.1% | Low |
-| Deprecated Annotation Issues | 2 | 0.1% | Low |
-| Missing clone() Methods | 2 | 0.1% | Low |
-| Type Casting Issues | 2 | 0.1% | Low |
-| Line Separator Issues | 1 | 0.0% | Low |
-| Missing Exception Handling | 1 | 0.0% | High |
-| Empty Catch Blocks | 1 | 0.0% | Medium |
-| String Concatenation Issues | 1 | 0.0% | Low |
-
-## Recommended Fix Order
-
-### High Priority (Start Here)
-1. **Security Issues** (6 issues) - Security vulnerabilities should be fixed
immediately
-2. **Null Check Issues** (15 issues) - Potential NullPointerExceptions
-3. **Brain Methods (Complexity)** (30 issues) - Code maintainability issues
-4. **Missing Exception Handling** (1 issue) - Critical error handling
-
-### Medium Priority
-5. **Exception Catching Issues** (30 issues) - Improve exception handling
patterns
-6. **Generic Type Issues** (121 issues) - Type safety improvements
-7. **Empty Method Implementations** (99 issues) - Complete implementations or
document why empty
-8. **Test Assertion Issues** (61 issues) - Fix test assertions
-9. **Optional Access Issues** (18 issues) - Proper Optional handling
-10. **Code Duplication** (16 issues) - Refactor duplicated code
-11. **ThreadLocal Cleanup Issues** (7 issues) - Memory leak prevention
-
-### Low Priority
-12. **Unused Code** (96 issues) - Remove dead code
-13. **Missing Private Constructors** (91 issues) - Utility class improvements
-14. **Missing @Override Annotations** (11 issues) - Code clarity
-15. **Unnecessary toString() Calls** (8 issues) - Minor optimizations
-16. **Other categories** - Fix as time permits
-
-## How to Use the Categorization Tool
-
-### 1. Generate Categorized Report
-
-```bash
-cd /Users/james.bognar/git/apache/juneau/master
-python3 scripts/categorize-sonar-issues.py
/Users/james.bognar/Downloads/SonarQubeIssues.txt --save-json
-```
-
-This will:
-- Parse all SonarQube issues
-- Categorize them into 30 categories
-- Save a JSON file with all categorized issues
-- Display a summary
-
-### 2. View Category Details
-
-The JSON file (`SonarQubeIssues.categorized.json`) contains all issues
organized by category. You can:
-
-- View specific categories
-- See all issues in a category
-- Get file locations and line numbers for each issue
-
-### 3. Interactive Fixing Session
-
-Run the script without `--save-json` to start an interactive session:
-
-```bash
-python3 scripts/categorize-sonar-issues.py
/Users/james.bognar/Downloads/SonarQubeIssues.txt
-```
-
-Commands available:
-- `fix` - Start fixing issues in current category
-- `skip` - Move to next category
-- `details` - Show detailed issue information
-- `list` - List all categories
-- `<number>` - Jump to specific category number
-- `quit` - Exit
-
-## Category Descriptions
-
-### High Priority Categories
-
-**Security Issues**: Security vulnerabilities that need immediate attention.
-
-**Null Check Issues**: Missing null checks that could lead to
NullPointerExceptions.
-
-**Brain Methods (Complexity)**: Methods that are too complex (high LOC,
complexity, nesting, or variable count). These need refactoring.
-
-**Missing Exception Handling**: Missing exception handling in critical code
paths.
-
-### Medium Priority Categories
-
-**Exception Catching Issues**: Catching overly broad exceptions (Throwable,
Error) instead of specific Exception types.
-
-**Generic Type Issues**: Using raw types instead of parameterized generic
types.
-
-**Empty Method Implementations**: Empty methods that should either be
implemented or documented why they're empty.
-
-**Test Assertion Issues**: Test assertions comparing incompatible types or
comparing primitives with null.
-
-**Optional Access Issues**: Accessing Optional values without checking
ifPresent() or isEmpty() first.
-
-**Code Duplication**: Duplicated code blocks that should be refactored.
-
-**ThreadLocal Cleanup Issues**: ThreadLocal variables not being cleaned up,
potentially causing memory leaks.
-
-### Low Priority Categories
-
-**Unused Code**: Unused parameters, variables, fields, methods, or imports.
-
-**Missing Private Constructors**: Utility classes that should have private
constructors to prevent instantiation.
-
-**Missing @Override Annotations**: Methods overriding parent methods without
@Override annotation.
-
-**Unnecessary toString() Calls**: Calling toString() on values that are
already strings.
-
-**Field Shadowing**: Local variables or parameters shadowing class fields.
-
-**Python f-string Issues**: Python f-strings without replacement fields
(should use regular strings).
-
-**HTML/Documentation Issues**: Missing HTML attributes or documentation
elements.
-
-**Singleton Pattern Issues**: Singleton implementations that may need review.
-
-**Missing Test Coverage**: Classes that need test coverage.
-
-**Deprecated Annotation Issues**: @Deprecated annotations missing 'since' or
'forRemoval' arguments.
-
-**Missing clone() Methods**: Classes that should implement clone().
-
-**Type Casting Issues**: Operations that need explicit casting to prevent
overflow.
-
-**Line Separator Issues**: Using \n instead of %n for platform-specific line
separators.
-
-**Empty Catch Blocks**: Catch blocks without logic that should either add
logic or rethrow.
-
-**String Concatenation Issues**: String concatenation in loops that should use
StringBuilder.
-
-## Next Steps
-
-1. Review this summary and prioritize categories based on your project needs
-2. Start with High Priority categories
-3. Use the interactive tool to work through categories systematically
-4. For each category, decide on a fix strategy:
- - **Auto-fix**: Simple, mechanical fixes (e.g., adding @Override, removing
unused imports)
- - **Manual review**: Complex issues requiring code review (e.g., Brain
Methods, Security Issues)
- - **Batch fix**: Similar issues that can be fixed together (e.g., Missing
Private Constructors)
-
-## Files Generated
-
-- `SonarQubeIssues.categorized.json` - Complete categorized issues in JSON
format
-- This summary document
diff --git
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanCreator2.java
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanCreator2.java
index 1f57a4c53e..fef6c12b80 100644
---
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanCreator2.java
+++
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanCreator2.java
@@ -1103,7 +1103,7 @@ public class BeanCreator2<T> {
* @return The created bean.
* @throws ExecutableException if bean could not be created.
*/
- @SuppressWarnings({ "unchecked", "java:S3776" })
+ @SuppressWarnings({ "unchecked", "java:S3776", "java:S6541" })
private T findBeanImpl() {
var store = this.store;
var builder = explicitBuilder != null ? explicitBuilder :
this.builder.get(); // Use explicit builder if set, otherwise get from supplier
diff --git
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/StringFormat.java
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/StringFormat.java
index 53229101df..171a03c0d3 100644
---
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/StringFormat.java
+++
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/StringFormat.java
@@ -216,7 +216,7 @@ public final class StringFormat {
}
@Override
- @SuppressWarnings("java:S3776")
+ @SuppressWarnings({ "java:S3776", "java:S6541" })
void append(StringBuilder sb, Object[] args, Locale locale) {
// String.format() throws
MissingFormatArgumentException when argument is missing
if (args == null || index >= args.length || index < 0) {
@@ -483,7 +483,7 @@ public final class StringFormat {
/**
* Parses the pattern into a list of tokens.
*/
- @SuppressWarnings("java:S3776")
+ @SuppressWarnings({ "java:S3776", "java:S6541" })
private static List<Token> parseTokens(String pattern) {
var tokens = new ArrayList<Token>();
var length = pattern.length();
diff --git
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/AnnotationProvider.java
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/AnnotationProvider.java
index bbf4b110f6..a9bcccb33f 100644
---
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/AnnotationProvider.java
+++
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/AnnotationProvider.java
@@ -985,6 +985,7 @@ public class AnnotationProvider {
* Computes and caches the complete list of annotations for a given
type, class, and traversal combination.
* This is the supplier function for the findCache.
*/
+ @SuppressWarnings("java:S6541")
private List load(Class<?> type, ElementInfo element,
AnnotationTraversal[] traversals) {
if (type != null) {
diff --git
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ClassInfo.java
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ClassInfo.java
index 445fcd6e1c..40b9996005 100644
---
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ClassInfo.java
+++
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ClassInfo.java
@@ -296,7 +296,7 @@ public class ClassInfo extends ElementInfo implements
Annotatable, Type, Compara
* @return
* The same StringBuilder for method chaining.
*/
- @SuppressWarnings({ "null", "java:S3776" })
+ @SuppressWarnings({ "null", "java:S3776", "java:S6541" })
public StringBuilder appendNameFormatted(StringBuilder sb,
ClassNameFormat nameFormat, boolean includeTypeParams, char separator,
ClassArrayFormat arrayFormat) {
var dim = getDimensions();
diff --git
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ExecutableInfo.java
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ExecutableInfo.java
index fc226047b7..e2e5e72310 100644
---
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ExecutableInfo.java
+++
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ExecutableInfo.java
@@ -848,7 +848,7 @@ public abstract class ExecutableInfo extends AccessibleInfo
{
return toString.get();
}
- @SuppressWarnings("java:S3776")
+ @SuppressWarnings({ "java:S3776", "java:S6541" })
private String findToString() {
var sb = new StringBuilder(256);
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 0349b96593..3b924cdc39 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
@@ -873,7 +873,7 @@ public class ParameterInfo extends ElementInfo implements
Annotatable {
* @throws ExecutableException If a required parameter (non-Optional,
non-collection) cannot be resolved
* from the bean store or <c>otherBeans</c>.
*/
- @SuppressWarnings("java:S3776")
+ @SuppressWarnings({ "java:S3776", "java:S6541" })
public Object resolveValue(BeanStore beanStore, Object... otherBeans) {
var pt = getParameterType();
var bq = getResolvedQualifier();
diff --git
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/time/GranularZonedDateTime.java
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/time/GranularZonedDateTime.java
index 24a65493b5..ce2ef1087d 100644
---
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/time/GranularZonedDateTime.java
+++
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/time/GranularZonedDateTime.java
@@ -262,6 +262,7 @@ public class GranularZonedDateTime {
* @throws IllegalArgumentException if value is null.
* @throws DateTimeParseException if the timestamp format is invalid.
*/
+ @SuppressWarnings("java:S6541")
public static GranularZonedDateTime of(String value, ZoneId
defaultZoneId, TimeProvider timeProvider) {
assertArgNotNull(ARG_value, value);
var digit = StringUtils.DIGIT;
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 1ff32716f3..5a07c9436b 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
@@ -4343,7 +4343,7 @@ public class StringUtils {
* @param str The string to generate a Metaphone code for. Can be
<jk>null</jk>.
* @return The Metaphone code, or <jk>null</jk> if input is
<jk>null</jk> or empty.
*/
- @SuppressWarnings("java:S3776")
+ @SuppressWarnings({ "java:S3776", "java:S6541" })
public static String metaphone(String str) {
if (isEmpty(str))
return null;
@@ -7772,7 +7772,7 @@ public class StringUtils {
* @return The wrapped string, or <jk>null</jk> if input is
<jk>null</jk>.
* @throws IllegalArgumentException if wrapLength is <= 0 or newline
is <jk>null</jk>.
*/
- @SuppressWarnings("java:S3776")
+ @SuppressWarnings({ "java:S3776", "java:S6541" })
public static String wrap(String str, int wrapLength, String newline) {
if (str == null)
return null;
@@ -7956,7 +7956,7 @@ public class StringUtils {
* @param ip The IPv6 address string to validate.
* @return <jk>true</jk> if the string is a valid IPv6 address format,
<jk>false</jk> otherwise.
*/
- @SuppressWarnings("java:S3776")
+ @SuppressWarnings({ "java:S3776", "java:S6541" })
public static boolean isValidIPv6Address(String ip) {
if (ip == null || ip.isEmpty())
return false;
diff --git
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/internal/ConfigMap.java
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/internal/ConfigMap.java
index 6b62c371c1..bf42f681e5 100644
---
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/internal/ConfigMap.java
+++
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/internal/ConfigMap.java
@@ -792,7 +792,7 @@ public class ConfigMap implements ConfigStoreListener {
return changes2;
}
- @SuppressWarnings("java:S3776")
+ @SuppressWarnings({ "java:S3776", "java:S6541" })
private ConfigMap load(String contents) throws IOException {
if (contents == null)
contents = "";
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
index dfc766fc29..a65b4d3001 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
@@ -962,7 +962,7 @@ public class BeanPropertyMeta implements
Comparable<BeanPropertyMeta> {
* @return The previous property value.
* @throws BeanRuntimeException If property could not be set.
*/
- @SuppressWarnings("java:S3776")
+ @SuppressWarnings({ "java:S3776", "java:S6541" })
public Object set(BeanMap<?> m, String pName, Object value) throws
BeanRuntimeException {
Object value1 = m.meta.onWriteProperty(m.bean, pName, value);
try {
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 d453c78010..d72f2cc28f 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
@@ -1147,7 +1147,7 @@ public class BeanSession extends ContextSession {
* @throws InvalidDataConversionException If the specified value cannot
be converted to the specified type.
* @return The converted value.
*/
- @SuppressWarnings({ "null", "java:S3776" })
+ @SuppressWarnings({ "null", "java:S3776", "java:S6541" })
protected final <T> T convertToMemberType(Object outer, Object value,
ClassMeta<T> to) throws InvalidDataConversionException {
if (to == null)
to = (ClassMeta<T>)object();
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
index 327f9c78ac..5ac3302cdc 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
@@ -468,7 +468,7 @@ public class HtmlSerializerSession extends
XmlSerializerSession {
out.ie(i).eTag("table").nl(i);
}
- @SuppressWarnings({ "rawtypes", "unchecked", "java:S3776" })
+ @SuppressWarnings({ "rawtypes", "unchecked", "java:S3776", "java:S6541"
})
private void serializeCollection(XmlWriter out, Object in, ClassMeta<?>
sType, ClassMeta<?> eType, String name, BeanPropertyMeta ppMeta) throws
SerializeException {
HtmlClassMeta cHtml = getHtmlClassMeta(sType);
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserSession.java
index 84389453f0..2da677a2f2 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserSession.java
@@ -178,7 +178,7 @@ public class MsgPackParserSession extends
InputStreamParserSession {
/*
* Workhorse method.
*/
- @SuppressWarnings("java:S3776")
+ @SuppressWarnings({ "java:S3776", "java:S6541" })
private <T> T parseAnything(ClassMeta<?> eType, MsgPackInputStream is,
Object outer, BeanPropertyMeta pMeta) throws IOException, ParseException,
ExecutableException {
if (eType == null)
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserSession.java
index 0a19b81941..7fe2cb6341 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserSession.java
@@ -243,7 +243,7 @@ public class OpenApiParserSession extends UonParserSession {
return t;
}
- @SuppressWarnings({ "unchecked", "java:S3776" })
+ @SuppressWarnings({ "unchecked", "java:S3776", "java:S6541" })
private <T> T parseInner(HttpPartType partType, HttpPartSchema schema,
String in, ClassMeta<T> type) throws SchemaValidationException, ParseException {
schema.validateInput(in);
if (in == null || "null".equals(in)) {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerSession.java
index ddb6d0c5dc..a3b32e47e9 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerSession.java
@@ -281,7 +281,7 @@ public class OpenApiSerializerSession extends
UonSerializerSession {
}
@Override /* Overridden from PartSerializer */
- @SuppressWarnings("java:S3776")
+ @SuppressWarnings({ "java:S3776", "java:S6541" })
public String serialize(HttpPartType partType, HttpPartSchema schema,
Object value) throws SerializeException, SchemaValidationException {
ClassMeta<?> type = getClassMetaForObject(value);
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 83cd450a7e..0a60d99ffc 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
@@ -319,6 +319,7 @@ public class VarResolverSession {
* @return The same writer.
* @throws IOException Thrown by underlying stream.
*/
+ @SuppressWarnings("java:S6541")
public Writer resolveTo(String s, Writer out) throws IOException {
// S1: Not in variable, looking for $
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
index 26b71051a0..94446ec0c8 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
@@ -295,7 +295,7 @@ public class UonParserSession extends ReaderParserSession
implements HttpPartPar
* @throws ParseException Malformed input encountered.
* @throws ExecutableException Exception occurred on invoked
constructor/method/field.
*/
- @SuppressWarnings("java:S3776")
+ @SuppressWarnings({ "java:S3776", "java:S6541" })
public <T> T parseAnything(ClassMeta<?> eType, UonReader r, Object
outer, boolean isUrlParamValue, BeanPropertyMeta pMeta) throws IOException,
ParseException, ExecutableException {
if (eType == null)
@@ -451,7 +451,7 @@ public class UonParserSession extends ReaderParserSession
implements HttpPartPar
throw new ParseException(this, "Unrecognized syntax for
boolean. ''{0}''.", s);
}
- @SuppressWarnings("java:S3776")
+ @SuppressWarnings({ "java:S3776", "java:S6541" })
private <T> BeanMap<T> parseIntoBeanMap(UonReader r, BeanMap<T> m)
throws IOException, ParseException, ExecutableException {
int c = r.readSkipWs();
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 f8f5d63f54..04c5f0a23c 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
@@ -291,7 +291,7 @@ public class UrlEncodingParserSession extends
UonParserSession {
return (T)o;
}
- @SuppressWarnings("java:S3776")
+ @SuppressWarnings({ "java:S3776", "java:S6541" })
private <T> BeanMap<T> parseIntoBeanMap(UonReader r, BeanMap<T> m)
throws IOException, ParseException, ExecutableException {
int c = r.peekSkipWs();
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java
index 0108b71e1d..7eaa36f9ca 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java
@@ -369,7 +369,7 @@ public class XmlParserSession extends ReaderParserSession {
return key.equals(getBeanTypePropertyName(null)) ||
key.equals(getNamePropertyName());
}
- @SuppressWarnings({ "null", "java:S3776" })
+ @SuppressWarnings({ "null", "java:S3776", "java:S6541" })
private <T> BeanMap<T> parseIntoBean(XmlReader r, BeanMap<T> m, boolean
isNil) throws IOException, ParseException, ExecutableException,
XMLStreamException {
var bMeta = m.getMeta();
var xmlMeta = getXmlBeanMeta(bMeta);
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 64f67b8ace..3a800ff3f3 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
@@ -360,7 +360,7 @@ public class XmlSerializerSession extends
WriterSerializerSession {
return xcm.getFormat() == XMLTEXT;
}
- @SuppressWarnings({ "null", "java:S3776" })
+ @SuppressWarnings({ "null", "java:S3776", "java:S6541" })
private ContentResult serializeBeanMap(XmlWriter out, BeanMap<?> m,
Namespace elementNs, boolean isCollapsed, boolean isMixedOrText) throws
SerializeException {
boolean hasChildren = false;
var bm = m.getMeta();
@@ -754,7 +754,7 @@ public class XmlSerializerSession extends
WriterSerializerSession {
* @return The same writer passed in so that calls to the writer can be
chained.
* @throws SerializeException General serialization error occurred.
*/
- @SuppressWarnings({ "null", "java:S3776" })
+ @SuppressWarnings({ "null", "java:S3776", "java:S6541" })
protected ContentResult serializeAnything(XmlWriter out, Object o,
ClassMeta<?> eType, String keyName, String elementName, Namespace
elementNamespace, boolean addNamespaceUris, XmlFormat format,
boolean isMixedOrText, boolean preserveWhitespace,
BeanPropertyMeta pMeta) throws SerializeException {
diff --git
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockPathResolver.java
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockPathResolver.java
index 9b05ced90a..2eac3a365e 100644
---
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockPathResolver.java
+++
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockPathResolver.java
@@ -135,7 +135,7 @@ class MockPathResolver {
return r(properties());
}
- @SuppressWarnings("java:S3776")
+ @SuppressWarnings({ "java:S3776", "java:S6541" })
private void init(String target, String contextPath, String
servletPath, String pathToResolve, Map<String,Object> pathVars) {
target = trimTrailingSlashes(emptyIfNull(target));
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 f418227c8f..6bd2c1ce74 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
@@ -239,6 +239,7 @@ public class RoleMatcher {
return exp.toString();
}
+ @SuppressWarnings("java:S6541")
private Exp parse(String expression) throws ParseException {
if (StringUtils.isBlank(expression))
return new Never();
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLogger.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLogger.java
index bf1d7f8386..448e913d25 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLogger.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLogger.java
@@ -542,7 +542,7 @@ public class CallLogger {
* @param req The servlet request.
* @param res The servlet response.
*/
- @SuppressWarnings("java:S3776")
+ @SuppressWarnings({ "java:S3776", "java:S6541" })
public void log(HttpServletRequest req, HttpServletResponse res) {
var rule = getRule(req, res);
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ResponseBeanProcessor.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ResponseBeanProcessor.java
index d51d419fd6..3655a0e48e 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ResponseBeanProcessor.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ResponseBeanProcessor.java
@@ -40,6 +40,7 @@ import org.apache.juneau.rest.*;
public class ResponseBeanProcessor implements ResponseProcessor {
@Override /* Overridden from ResponseProcessor */
+ @SuppressWarnings("java:S6541")
public int process(RestOpSession opSession) throws IOException {
var req = opSession.getRequest();
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/BasicSwaggerProviderSession.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/BasicSwaggerProviderSession.java
index aa128532ad..6f2c2c2d2d 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/BasicSwaggerProviderSession.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/BasicSwaggerProviderSession.java
@@ -208,7 +208,7 @@ public class BasicSwaggerProviderSession {
* @return A new {@link Swagger} object.
* @throws Exception If an error occurred producing the Swagger.
*/
- @SuppressWarnings("java:S3776")
+ @SuppressWarnings({ "java:S3776", "java:S6541" })
public Swagger getSwagger() throws Exception {
// @formatter:off