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 c19c19c6b5 SonarQube bug fixes
c19c19c6b5 is described below
commit c19c19c6b565aa51d2246470b49af5f8ecb970e7
Author: James Bognar <[email protected]>
AuthorDate: Fri Feb 6 09:30:46 2026 -0500
SonarQube bug fixes
---
.../apache/juneau/commons/lang/StringFormat.java | 31 ++++++++++------------
.../apache/juneau/commons/lang/VersionRange.java | 5 ++--
.../juneau/commons/settings/StringSetting.java | 2 +-
.../juneau/commons/utils/AnnotationUtils.java | 2 +-
.../apache/juneau/commons/utils/StringUtils.java | 2 +-
.../apache/juneau/html/HtmlSerializerSession.java | 9 +++----
.../java/org/apache/juneau/reflect/Mutaters.java | 20 +++-----------
.../java/org/apache/juneau/swaps/TemporalSwap.java | 9 ++-----
.../apache/juneau/rest/client/ResponseHeader.java | 13 +++++----
.../apache/juneau/rest/logger/CallLoggerRule.java | 14 +++-------
.../apache/juneau/rest/util/UrlPathMatcher.java | 2 +-
11 files changed, 37 insertions(+), 72 deletions(-)
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 fdf4b89765..153d739cbd 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
@@ -169,23 +169,20 @@ public final class StringFormat {
}
var o = args[index];
var l = locale == null ? Locale.getDefault() : locale;
- switch (format) {
- case 's':
- if (o == null) {
- sb.append("null");
- } else if (o instanceof Number o2) {
-
sb.append(NUMBER_FORMAT_CACHE.get(l).format(o2));
- } else if (o instanceof Date o2) {
-
sb.append(DATE_FORMAT_CACHE.get(l).format(o2));
- } else {
- sb.append(o.toString());
- }
- break;
- default:
- // Use Cache2 with Locale and content
as separate keys to avoid string concatenation
- var mf = MESSAGE_FORMAT_CACHE.get(l,
content);
- sb.append(mf.format(a(o)));
- break;
+ if (format == 's') {
+ if (o == null) {
+ sb.append("null");
+ } else if (o instanceof Number o2) {
+
sb.append(NUMBER_FORMAT_CACHE.get(l).format(o2));
+ } else if (o instanceof Date o2) {
+
sb.append(DATE_FORMAT_CACHE.get(l).format(o2));
+ } else {
+ sb.append(o.toString());
+ }
+ } else {
+ // Use Cache2 with Locale and content as
separate keys to avoid string concatenation
+ var mf = MESSAGE_FORMAT_CACHE.get(l, content);
+ sb.append(mf.format(a(o)));
}
}
}
diff --git
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/VersionRange.java
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/VersionRange.java
index 34f5519ac4..bfbdb14911 100644
---
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/VersionRange.java
+++
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/VersionRange.java
@@ -76,9 +76,8 @@ public class VersionRange {
if (e(v))
return (minVersion == null && maxVersion == null);
var ver = new Version(v);
- if ((nn(minVersion) && ! ver.isAtLeast(minVersion,
minExclusive)) || (nn(maxVersion) && ! ver.isAtMost(maxVersion, maxExclusive)))
- return false;
- return true;
+ return (minVersion == null || ver.isAtLeast(minVersion,
minExclusive))
+ && (maxVersion == null || ver.isAtMost(maxVersion,
maxExclusive));
}
@Override /* Overridden from Object */
diff --git
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/settings/StringSetting.java
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/settings/StringSetting.java
index 6546e90144..9a20efc2ce 100644
---
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/settings/StringSetting.java
+++
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/settings/StringSetting.java
@@ -64,7 +64,7 @@ public class StringSetting extends Setting<String> {
* @param mapper A mapping function to apply to the value, if present.
Must not be <jk>null</jk>.
* @return A StringSetting describing the result of applying a mapping
function to the value of this StringSetting, if a value is present, otherwise
an empty StringSetting.
*/
- public StringSetting mapString(Function<? super String, ? extends
String> mapper) {
+ public StringSetting mapString(Function<String, String> mapper) {
assertArgNotNull(ARG_mapper, mapper);
return new StringSetting(getSettings(), () -> {
String value = get();
diff --git
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/AnnotationUtils.java
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/AnnotationUtils.java
index 49db0fce14..d4276e77e1 100644
---
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/AnnotationUtils.java
+++
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/AnnotationUtils.java
@@ -54,7 +54,7 @@ public class AnnotationUtils {
if (! t1.equals(t2))
return false;
- return ! getAnnotationMethods(t1).anyMatch(x -> !
memberEquals(x.getReturnType(), safeSupplier(() -> x.invoke(a1)),
safeSupplier(() -> x.invoke(a2))));
+ return getAnnotationMethods(t1).allMatch(x ->
memberEquals(x.getReturnType(), safeSupplier(() -> x.invoke(a1)),
safeSupplier(() -> x.invoke(a2))));
}
/**
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 e039501d5c..2daf7db1aa 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
@@ -3542,7 +3542,7 @@ public class StringUtils {
* @param s The string to test.
* @return <jk>true</jk> if it's an absolute path.
*/
- @SuppressWarnings("java:S3776") // Cognitive complexity is acceptable
for this state machine-based URI validator
+ @SuppressWarnings({ "java:S3776", "java:S1126" }) // Cognitive
complexity is acceptable for this state machine-based URI validator. S1126:
State machine requires if-then-else structure
public static boolean isUri(String s) {
if (isEmpty(s))
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 47c22f0115..3e16366aca 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
@@ -209,7 +209,7 @@ public class HtmlSerializerSession extends
XmlSerializerSession {
}
private final HtmlSerializer ctx;
- private final Pattern urlPattern =
Pattern.compile("http[s]?\\:\\/\\/.*");
+ private final Pattern urlPattern = Pattern.compile("https?\\:\\/\\/.*");
private final Pattern labelPattern;
/**
@@ -280,11 +280,8 @@ public class HtmlSerializerSession extends
XmlSerializerSession {
* @return <jk>true</jk> if the specified object is a URL.
*/
public boolean isUri(ClassMeta<?> cm, BeanPropertyMeta pMeta, Object o)
{
- if (cm.isUri() || (nn(pMeta) && pMeta.isUri()))
- return true;
- if (isDetectLinksInStrings() && o instanceof CharSequence &&
urlPattern.matcher(o.toString()).matches())
- return true;
- return false;
+ return (cm.isUri() || (nn(pMeta) && pMeta.isUri()))
+ || (isDetectLinksInStrings() && o instanceof
CharSequence && urlPattern.matcher(o.toString()).matches());
}
/**
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/Mutaters.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/Mutaters.java
index d78901f5d9..45887ac26f 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/Mutaters.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/Mutaters.java
@@ -101,11 +101,7 @@ public class Mutaters {
* @param t The transform for converting the input to the output.
*/
public static synchronized void add(Class<?> ic, Class<?> oc,
Mutater<?,?> t) {
- var m = CACHE.get(oc);
- if (m == null) {
- m = new ConcurrentHashMap<>();
- CACHE.put(oc, m);
- }
+ var m = CACHE.computeIfAbsent(oc, k -> new
ConcurrentHashMap<>());
m.put(ic, t);
}
@@ -145,19 +141,9 @@ public class Mutaters {
if (ic == null || oc == null)
return null;
- var m = CACHE.get(oc);
- if (m == null) {
- m = new ConcurrentHashMap<>();
- CACHE.putIfAbsent(oc, m);
- m = CACHE.get(oc);
- }
-
- var t = m.get(ic);
+ var m = CACHE.computeIfAbsent(oc, k -> new
ConcurrentHashMap<>());
- if (t == null) {
- t = find(ic, oc, m);
- m.put(ic, t);
- }
+ var t = m.computeIfAbsent(ic, k -> find(ic, oc, m));
return t == NULL ? null : (Mutater<I,O>)t;
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swaps/TemporalSwap.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swaps/TemporalSwap.java
index 6e185c8ea3..379a07dd58 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swaps/TemporalSwap.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swaps/TemporalSwap.java
@@ -337,10 +337,8 @@ public class TemporalSwap extends StringSwap<Temporal> {
private static final Map<Class<? extends Temporal>,Method> FROM_METHODS
= new ConcurrentHashMap<>();
private static Method findParseMethod(Class<? extends Temporal> c)
throws ExecutableException {
- var m = FROM_METHODS.get(c);
- if (m == null) {
// @formatter:off
- m = info(c).getPublicMethod(
+ return FROM_METHODS.computeIfAbsent(c, k ->
info(c).getPublicMethod(
x -> x.isStatic()
&& x.isNotDeprecated()
&& x.hasName("from")
@@ -348,11 +346,8 @@ public class TemporalSwap extends StringSwap<Temporal> {
&& x.hasParameterTypes(TemporalAccessor.class)
)
.map(MethodInfo::inner)
- .orElseThrow(() -> new ExecutableException("Parse
method not found on temporal class ''{0}''", c.getSimpleName()));
+ .orElseThrow(() -> new ExecutableException("Parse
method not found on temporal class ''{0}''", c.getSimpleName())));
// @formatter:on
- FROM_METHODS.put(c, m);
- }
- return m;
}
private final DateTimeFormatter formatter;
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
index 03f3cf3346..43a7a43a5b 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
@@ -258,14 +258,13 @@ public class ResponseHeader extends BasicHeader {
cc = ci.getPublicConstructor(x ->
x.hasParameterTypes(String.class, String.class)).orElse(null);
if (nn(cc))
return cc.newInstance(getName(), getValue());
+ } catch (ExecutableException e) {
+ var cause = e.getCause();
+ if (cause instanceof Exception ex)
+ throw toRex(ex);
+ else
+ throw toRex(cause);
} catch (Exception e) {
- if (e instanceof ExecutableException) {
- var cause = e.getCause();
- if (cause instanceof Exception ex)
- e = ex;
- else
- throw toRex(cause);
- }
throw toRex(e);
}
throw rex("Could not determine a method to construct type {0}",
cn(c));
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLoggerRule.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLoggerRule.java
index 220bd708d7..a14bf963a8 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLoggerRule.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLoggerRule.java
@@ -391,18 +391,10 @@ public class CallLoggerRule {
* @return <jk>true</jk> if this rule matches the specified parameters.
*/
public boolean matches(HttpServletRequest req, HttpServletResponse res)
{
-
- if ((nn(requestFilter) && ! requestFilter.test(req)) ||
(nn(responseFilter) && ! responseFilter.test(res)))
- return false;
-
- if (nn(statusFilter) && ! statusFilter.test(res.getStatus()))
- return false;
-
var e = (Throwable)req.getAttribute("Exception");
- if (nn(e) && nn(exceptionFilter) && ! exceptionFilter.test(e))
- return false;
-
- return true;
+ return !((nn(requestFilter) && ! requestFilter.test(req)) ||
(nn(responseFilter) && ! responseFilter.test(res)))
+ && !(nn(statusFilter) && !
statusFilter.test(res.getStatus()))
+ && !(nn(e) && nn(exceptionFilter) && !
exceptionFilter.test(e));
}
protected FluentMap<String,Object> properties() {
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/UrlPathMatcher.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/UrlPathMatcher.java
index 4756efcc3e..7f6c7376ee 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/UrlPathMatcher.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/UrlPathMatcher.java
@@ -91,7 +91,7 @@ public abstract class UrlPathMatcher implements
Comparable<UrlPathMatcher> {
this.pattern = patternString;
}
- var c = patternString.replaceAll("\\{[^\\}]+\\}",
".").replaceAll("\\w+", "X").replaceAll("\\.", "W");
+ var c = patternString.replaceAll("\\{[^\\}]+\\}",
".").replaceAll("\\w+", "X").replace(".", "W");
if (c.isEmpty())
c = "+";
if (! c.endsWith("/*"))