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

commit b59e581a06cad0972b599858f263f8cc098d9b94
Author: James Bognar <[email protected]>
AuthorDate: Fri Feb 6 08:27:27 2026 -0500

    SonarQube bug fixes
---
 .../juneau/assertions/AssertionPredicate.java      | 10 +++---
 .../apache/juneau/commons/inject/BeanCreator2.java | 19 ++++++-----
 .../apache/juneau/commons/reflect/ClassInfo.java   |  7 ++--
 .../org/apache/juneau/httppart/HttpPartSchema.java | 37 +++++++++++++---------
 4 files changed, 43 insertions(+), 30 deletions(-)

diff --git 
a/juneau-core/juneau-assertions/src/main/java/org/apache/juneau/assertions/AssertionPredicate.java
 
b/juneau-core/juneau-assertions/src/main/java/org/apache/juneau/assertions/AssertionPredicate.java
index c738994ed4..592640f326 100644
--- 
a/juneau-core/juneau-assertions/src/main/java/org/apache/juneau/assertions/AssertionPredicate.java
+++ 
b/juneau-core/juneau-assertions/src/main/java/org/apache/juneau/assertions/AssertionPredicate.java
@@ -62,6 +62,8 @@ import org.apache.juneau.cp.*;
 @SuppressWarnings("java:S115") // Constants use UPPER_snakeCase convention 
(e.g., MSG_predicateTestFailed, MSG_valueDidNotPassTest)
 public class AssertionPredicate<T> implements Predicate<T> {
 
+       private static final String CONST_Messages = "Messages";
+
        /**
         * Encapsulates multiple predicates into a single AND operation.
         *
@@ -73,7 +75,7 @@ public class AssertionPredicate<T> implements Predicate<T> {
         */
        public static class And<T> extends AssertionPredicate<T> {
 
-               private static final Messages MESSAGES = 
Messages.of(AssertionPredicate.class, "Messages");
+               private static final Messages MESSAGES = 
Messages.of(AssertionPredicate.class, CONST_Messages);
 
                private static final String MSG_predicateTestFailed = 
MESSAGES.getString("predicateTestFailed");
                private final Predicate<T>[] inner;
@@ -118,7 +120,7 @@ public class AssertionPredicate<T> implements Predicate<T> {
         */
        public static class Not<T> extends AssertionPredicate<T> {
 
-               private static final Messages MESSAGES = 
Messages.of(AssertionPredicate.class, "Messages");
+               private static final Messages MESSAGES = 
Messages.of(AssertionPredicate.class, CONST_Messages);
                private static final String 
MSG_predicateTestsUnexpectedlyPassed = 
MESSAGES.getString("predicateTestsUnexpectedlyPassed");
 
                private final Predicate<T> inner;
@@ -158,7 +160,7 @@ public class AssertionPredicate<T> implements Predicate<T> {
         */
        public static class Or<T> extends AssertionPredicate<T> {
 
-               private static final Messages MESSAGES = 
Messages.of(AssertionPredicate.class, "Messages");
+               private static final Messages MESSAGES = 
Messages.of(AssertionPredicate.class, CONST_Messages);
                private static final String MSG_noPredicateTestsPassed = 
MESSAGES.getString("noPredicateTestsPassed");
 
                private final Predicate<T>[] inner;
@@ -189,7 +191,7 @@ public class AssertionPredicate<T> implements Predicate<T> {
         * Argument placeholder for tested value.
         */
        public static final Function<Object,String> VALUE = 
StringUtils::readable;
-       private static final Messages MESSAGES = 
Messages.of(AssertionPredicate.class, "Messages");
+       private static final Messages MESSAGES = 
Messages.of(AssertionPredicate.class, CONST_Messages);
        private static final String MSG_valueDidNotPassTest = 
MESSAGES.getString("valueDidNotPassTest");
        private static final String MSG_valueDidNotPassTestWithValue = 
MESSAGES.getString("valueDidNotPassTestWithValue");
        private final Predicate<T> inner;
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 7711920243..9094491c57 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
@@ -187,6 +187,7 @@ import org.apache.juneau.commons.reflect.*;
 public class BeanCreator2<T> {
 
        private static final String CLASSNAME_Autowired = "Autowired";
+       private static final String CLASSNAME_Inject = "Inject";
 
        // Argument name constants for assertArgNotNull
        private static final String ARG_beanType = "beanType";
@@ -195,6 +196,8 @@ public class BeanCreator2<T> {
        private static final String ARG_names = "names";
        private static final String ARG_value = "value";
 
+       private static final String CONST_usingFallbackSupplier = "Using 
fallback supplier";
+
        /** Default factory method names used for bean instantiation. */
        protected static final Set<String> DEFAULT_FACTORY_METHOD_NAMES = 
u(set("getInstance"));
 
@@ -1124,7 +1127,7 @@ public class BeanCreator2<T> {
                                .filter(x -> x.isAll(NOT_STATIC, 
NOT_DEPRECATED, NOT_SYNTHETIC, NOT_BRIDGE))
                                .filter(x -> 
buildMethodNames.contains(x.getNameSimple()))
                                .filter(x -> opt(x).map(x2 -> 
x2.getReturnType()).filter(x2 -> x2.is(beanSubType.inner()) || 
x2.isParentOf(beanSubType)).isPresent()) // Accept methods that return 
beanSubType or a parent type of beanSubType
-                               .filter(x -> 
x.getAnnotations().stream().map(AnnotationInfo::getNameSimple).anyMatch(n -> 
eqAny(n, "Inject", CLASSNAME_Autowired)) ? x.canResolveAllParameters(store2) : 
x.getParameterCount() == 0)
+                               .filter(x -> 
x.getAnnotations().stream().map(AnnotationInfo::getNameSimple).anyMatch(n -> 
eqAny(n, CLASSNAME_Inject, CLASSNAME_Autowired)) ? 
x.canResolveAllParameters(store2) : x.getParameterCount() == 0)
                                .sorted(methodComparator)
                                .findFirst();
 
@@ -1138,7 +1141,7 @@ public class BeanCreator2<T> {
                                log("Expected beanSubType: %s", 
beanSubType.getName());
 
                                // Check if method has @Inject annotation
-                               boolean hasInject = 
method.getAnnotations().stream().map(AnnotationInfo::getNameSimple).anyMatch(n 
-> eqAny(n, "Inject", CLASSNAME_Autowired));
+                               boolean hasInject = 
method.getAnnotations().stream().map(AnnotationInfo::getNameSimple).anyMatch(n 
-> eqAny(n, CLASSNAME_Inject, CLASSNAME_Autowired));
                                if (hasInject) {
                                        log("Method has @Inject annotation, 
resolving parameters from bean store");
                                } else {
@@ -1170,7 +1173,7 @@ public class BeanCreator2<T> {
                                .filter(x -> x.isAll(NOT_STATIC, 
NOT_DEPRECATED, NOT_SYNTHETIC, NOT_BRIDGE))
                                .filter(x -> 
!buildMethodNames.contains(x.getNameSimple())) // Skip standard build methods 
we already checked
                                .filter(x -> 
x.getReturnType().is(beanSubType.inner())) // Must return exact beanSubType, 
not parent
-                               .filter(x -> 
x.getAnnotations().stream().map(AnnotationInfo::getNameSimple).anyMatch(n -> 
eqAny(n, "Inject", CLASSNAME_Autowired)) ? x.canResolveAllParameters(store2) : 
x.getParameterCount() == 0)
+                               .filter(x -> 
x.getAnnotations().stream().map(AnnotationInfo::getNameSimple).anyMatch(n -> 
eqAny(n, CLASSNAME_Inject, CLASSNAME_Autowired)) ? 
x.canResolveAllParameters(store2) : x.getParameterCount() == 0)
                                .sorted(methodComparator)
                                .findFirst();
 
@@ -1223,7 +1226,7 @@ public class BeanCreator2<T> {
                                log("Builder detected but no appropriate build 
method found. Builder type: %s. Expected method names: %s", 
builder2.getClass().getName(), buildMethodNames);
 
                                if (fallbackSupplier != null) {
-                                       log("Using fallback supplier");
+                                       log(CONST_usingFallbackSupplier);
                                        T fallbackBean = fallbackSupplier.get();
                                        runPostCreateHooks(fallbackBean);
                                        return fallbackBean;
@@ -1282,7 +1285,7 @@ public class BeanCreator2<T> {
                if (beanSubType.isInterface()) {
                        log("Bean type is an interface");
                        if (fallbackSupplier != null) {
-                               log("Using fallback supplier");
+                               log(CONST_usingFallbackSupplier);
                                T fallbackBean = fallbackSupplier.get();
                                runPostCreateHooks(fallbackBean);
                                return fallbackBean;
@@ -1293,7 +1296,7 @@ public class BeanCreator2<T> {
                if (beanSubType.isAbstract()) {
                        log("Bean type is abstract");
                        if (fallbackSupplier != null) {
-                               log("Using fallback supplier");
+                               log(CONST_usingFallbackSupplier);
                                T fallbackBean = fallbackSupplier.get();
                                runPostCreateHooks(fallbackBean);
                                return fallbackBean;
@@ -1302,7 +1305,7 @@ public class BeanCreator2<T> {
                }
 
                if (fallbackSupplier != null) {
-                       log("Using fallback supplier");
+                       log(CONST_usingFallbackSupplier);
                        T fallbackBean = fallbackSupplier.get();
                        runPostCreateHooks(fallbackBean);
                        return fallbackBean;
@@ -1581,7 +1584,7 @@ public class BeanCreator2<T> {
                                var returnType = x.getReturnType();
                                return returnType.is(beanSubType.inner()) || 
returnType.is(beanType.inner()) || returnType.isParentOf(beanSubType);
                        })
-                       .anyMatch(x -> 
x.getAnnotations().stream().map(AnnotationInfo::getNameSimple).anyMatch(n -> 
eqAny(n, "Inject", CLASSNAME_Autowired)) || x.getParameterCount() == 0);
+                       .anyMatch(x -> 
x.getAnnotations().stream().map(AnnotationInfo::getNameSimple).anyMatch(n -> 
eqAny(n, CLASSNAME_Inject, CLASSNAME_Autowired)) || x.getParameterCount() == 0);
 
                if (hasBuildMethod) {
                        log("Builder is valid: has build/create/get method 
returning bean type");
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 0b22e83d12..43820c0ec3 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
@@ -70,6 +70,7 @@ import org.apache.juneau.commons.lang.*;
 public class ClassInfo extends ElementInfo implements Annotatable, Type, 
Comparable<ClassInfo> {
 
        private static final String CLASSNAME_Autowired = "Autowired";
+       private static final String CLASSNAME_Inject = "Inject";
 
        // Argument name constants for assertArgNotNull
        private static final String ARG_type = "type";
@@ -2962,13 +2963,13 @@ public class ClassInfo extends ElementInfo implements 
Annotatable, Type, Compara
        public <T> T inject(T bean, BeanStore beanStore) {
                // Inject into fields
                getAllFields().stream()
-                       .filter(x -> x.isNotFinal() && 
x.getAnnotations().stream().map(AnnotationInfo::getNameSimple).anyMatch(n -> 
eq(n, "Inject") || eq(n, CLASSNAME_Autowired)))
+                       .filter(x -> x.isNotFinal() && 
x.getAnnotations().stream().map(AnnotationInfo::getNameSimple).anyMatch(n -> 
eq(n, CLASSNAME_Inject) || eq(n, CLASSNAME_Autowired)))
                        .forEach(x -> x.inject(beanStore, bean));
 
                // Inject into methods
                getAllMethods().stream()
-                       .filter(x -> x.isNotAbstract() && 
eq(x.getTypeParameters().length, 0) && 
x.getAnnotations().stream().map(AnnotationInfo::getNameSimple).anyMatch(n -> 
eq(n, "Inject") || eq(n, CLASSNAME_Autowired)))
-                       .filter(x -> x.isNotAbstract() && 
eq(x.getTypeParameters().length, 0) && 
x.getAnnotations().stream().map(AnnotationInfo::getNameSimple).anyMatch(n -> 
eq(n, "Inject") || eq(n, CLASSNAME_Autowired)))
+               .filter(x -> x.isNotAbstract() && 
eq(x.getTypeParameters().length, 0) && 
x.getAnnotations().stream().map(AnnotationInfo::getNameSimple).anyMatch(n -> 
eq(n, CLASSNAME_Inject) || eq(n, CLASSNAME_Autowired)))
+               .filter(x -> x.isNotAbstract() && 
eq(x.getTypeParameters().length, 0) && 
x.getAnnotations().stream().map(AnnotationInfo::getNameSimple).anyMatch(n -> 
eq(n, CLASSNAME_Inject) || eq(n, CLASSNAME_Autowired)))
                        .forEach(x -> x.inject(beanStore, bean));
 
                // Call @PostConstruct methods after all injection is complete
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 9cbad01855..812a50fcfc 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
@@ -132,6 +132,13 @@ public class HttpPartSchema {
        private static final String CLASSNAME_DecimalMin = "DecimalMin";
        private static final String CLASSNAME_DecimalMax = "DecimalMax";
 
+       // Annotation attribute name constants
+       private static final String ANN_value = "value";
+       private static final String ANN_min = "min";
+       private static final String ANN_max = "max";
+       private static final String ANN_regexp = "regexp";
+       private static final String ANN_inclusive = "inclusive";
+
        /**
         * Builder class.
         */
@@ -2918,9 +2925,9 @@ public class HttpPartSchema {
                                        case CLASSNAME_NotNull:
                                                required(true);
                                                break;
-                                       case CLASSNAME_Size:
-                                               Integer min = 
getAnnotationValue(a, "min", Integer.class);
-                                               Integer max = 
getAnnotationValue(a, "max", Integer.class);
+                               case CLASSNAME_Size:
+                                       Integer min = getAnnotationValue(a, 
ANN_min, Integer.class);
+                                       Integer max = getAnnotationValue(a, 
ANN_max, Integer.class);
                                                if (nn(min) && min > 0) {
                                                        
minLength(min.longValue());
                                                        
minItems(min.longValue());
@@ -2930,18 +2937,18 @@ public class HttpPartSchema {
                                                        
maxItems(max.longValue());
                                                }
                                                break;
-                                       case CLASSNAME_Min:
-                                               Long minValue = 
getAnnotationValue(a, "value", Long.class);
+                               case CLASSNAME_Min:
+                                       Long minValue = getAnnotationValue(a, 
ANN_value, Long.class);
                                                if (nn(minValue))
                                                        minimum(minValue);
                                                break;
-                                       case CLASSNAME_Max:
-                                               Long maxValue = 
getAnnotationValue(a, "value", Long.class);
+                               case CLASSNAME_Max:
+                                       Long maxValue = getAnnotationValue(a, 
ANN_value, Long.class);
                                                if (nn(maxValue))
                                                        maximum(maxValue);
                                                break;
-                                       case CLASSNAME_Pattern:
-                                               String regexp = 
getAnnotationValue(a, "regexp", String.class);
+                               case CLASSNAME_Pattern:
+                                       String regexp = getAnnotationValue(a, 
ANN_regexp, String.class);
                                                if (nn(regexp))
                                                        pattern(regexp);
                                                break;
@@ -2972,18 +2979,18 @@ public class HttpPartSchema {
                                                minLength(1L);
                                                pattern(".*\\S.*"); // Contains 
at least one non-whitespace character
                                                break;
-                                       case CLASSNAME_DecimalMin:
-                                               String minVal = 
getAnnotationValue(a, "value", String.class);
-                                               Boolean minInclusive = 
getAnnotationValue(a, "inclusive", Boolean.class);
+                               case CLASSNAME_DecimalMin:
+                                       String minVal = getAnnotationValue(a, 
ANN_value, String.class);
+                                       Boolean minInclusive = 
getAnnotationValue(a, ANN_inclusive, Boolean.class);
                                                if (nn(minVal)) {
                                                        
minimum(toNumber(minVal));
                                                        if 
(isFalse(minInclusive))
                                                                
exclusiveMinimum(true);
                                                }
                                                break;
-                                       case CLASSNAME_DecimalMax:
-                                               String maxVal = 
getAnnotationValue(a, "value", String.class);
-                                               Boolean maxInclusive = 
getAnnotationValue(a, "inclusive", Boolean.class);
+                               case CLASSNAME_DecimalMax:
+                                       String maxVal = getAnnotationValue(a, 
ANN_value, String.class);
+                                       Boolean maxInclusive = 
getAnnotationValue(a, ANN_inclusive, Boolean.class);
                                                if (nn(maxVal)) {
                                                        
maximum(toNumber(maxVal));
                                                        if 
(isFalse(maxInclusive))

Reply via email to