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 c0a56a1981 SonarQube bug fixes
c0a56a1981 is described below
commit c0a56a1981e427a9c006b316f7a22529260a1231
Author: James Bognar <[email protected]>
AuthorDate: Wed Feb 18 11:15:00 2026 -0500
SonarQube bug fixes
---
TODO.md | 3 +-
.../jsonschema/JsonSchemaGeneratorSession.java | 9 +----
.../apache/juneau/xml/XmlSerializerSession.java | 44 ++++++++++------------
.../apache/juneau/rest/util/UrlPathMatcher.java | 4 +-
4 files changed, 24 insertions(+), 36 deletions(-)
diff --git a/TODO.md b/TODO.md
index a4ab7489c7..27550fd1b9 100644
--- a/TODO.md
+++ b/TODO.md
@@ -5,4 +5,5 @@
- Change field names that start with underscore so that they end with
underscore (e.g. "_enum"->"enum_")
- Investigate navlinks URL generation issue: Either
"request:?Accept=text/json&plainText=true" should be supported, or
"request:/?Accept=text/json&plainText=true" should not append '/' to the
request URL. Currently, "request:/?Accept=..." generates URLs like
"http://localhost:5000/rest/db/request:?Accept=..." which is incorrect.
- Determine if it's possible to add a "short" field to @Schema for AI purposes.
-- Ensure Juneau support record types for serializing/parsing.
\ No newline at end of file
+- Ensure Juneau support record types for serializing/parsing.
+- JsonSchemaParser should be able to produce JsonSchema beans.
\ No newline at end of file
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
index 8afab18e42..e73a91e6b8 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
@@ -409,16 +409,11 @@ public class JsonSchemaGeneratorSession extends
BeanTraverseSession {
} else if (sType.isEnum()) {
tc = ENUM;
type = TYPE_string;
- } else if (sType.isCharSequence() || sType.isChar()) {
- tc = STRING;
- type = TYPE_string;
- } else if (sType.isUri()) {
- tc = STRING;
- type = TYPE_string;
- format = FORMAT_uri;
} else {
tc = STRING;
type = TYPE_string;
+ if (sType.isUri())
+ format = FORMAT_uri;
}
// Add info from @Schema on bean property.
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 e42396ca55..862bf16483 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
@@ -362,6 +362,16 @@ public class XmlSerializerSession extends
WriterSerializerSession {
return xcm.getFormat() == XMLTEXT;
}
+ private Optional<Map.Entry<String,Object>>
getPropertyKeyValueIfNotIgnored(BeanPropertyValue p, BeanPropertyMeta pMeta,
ClassMeta<?> cMeta) {
+ var key = p.getName();
+ var value = p.getValue();
+ if (nn(p.getThrown()))
+ onBeanGetterException(pMeta, p.getThrown());
+ if (canIgnoreValue(cMeta, key, value))
+ return Optional.empty();
+ return Optional.of(new AbstractMap.SimpleEntry<>(key, value));
+ }
+
@SuppressWarnings({ "null", "java:S3776", "java:S6541" })
private ContentResult serializeBeanMap(XmlWriter out, BeanMap<?> m,
Namespace elementNs, boolean isCollapsed, boolean isMixedOrText) throws
SerializeException {
boolean hasChildren = false;
@@ -391,17 +401,11 @@ public class XmlSerializerSession extends
WriterSerializerSession {
if (attrs.contains(n) || attrs.contains("*") ||
n.equals(attrsProperty)) {
var pMeta = p.getMeta();
if (pMeta.canRead()) {
- var cMeta = p.getClassMeta();
-
- var key = p.getName();
- var value = p.getValue();
- var t = p.getThrown();
- if (nn(t))
- onBeanGetterException(pMeta, t);
-
- if (canIgnoreValue(cMeta, key, value))
+ var kv =
getPropertyKeyValueIfNotIgnored(p, pMeta, p.getClassMeta());
+ if (kv.isEmpty())
continue;
-
+ var key = kv.get().getKey();
+ var value = kv.get().getValue();
var bpXml =
getXmlBeanPropertyMeta(pMeta);
var ns = (isEnableNamespaces() &&
bpXml.getNamespace() != elementNs ? bpXml.getNamespace() : null);
@@ -450,15 +454,11 @@ public class XmlSerializerSession extends
WriterSerializerSession {
else if (contentType.isArray() &&
Array.getLength(content) == 0)
hasContent = false;
} else if (elements.contains(n) ||
collapsedElements.contains(n) || elements.contains("*") ||
collapsedElements.contains("*")) {
- var key = p.getName();
- var value = p.getValue();
- var t = p.getThrown();
- if (nn(t))
- onBeanGetterException(pMeta, t);
-
- if (canIgnoreValue(cMeta, key, value))
+ var kv =
getPropertyKeyValueIfNotIgnored(p, pMeta, cMeta);
+ if (kv.isEmpty())
continue;
-
+ var key = kv.get().getKey();
+ var value = kv.get().getValue();
if (! hasChildren) {
hasChildren = true;
out.appendIf(! isCollapsed,
'>').nlIf(! isMixedOrText, indent);
@@ -964,13 +964,7 @@ public class XmlSerializerSession extends
WriterSerializerSession {
rc = serializeMap(out, (Map)o, sType,
eType.getKeyType(), eType.getValueType(), isMixedOrText);
} else if (sType.isBean()) {
rc = serializeBeanMap(out, toBeanMap(o),
elementNamespace, isCollapsed, isMixedOrText);
- } else if (sType.isCollection() || (nn(wType) &&
wType.isCollection())) {
- if (isCollapsed)
- indent--;
- serializeCollection(out, o, sType, eType,
pMeta, isMixedOrText);
- if (isCollapsed)
- indent++;
- } else if (sType.isArray()) {
+ } else if (sType.isCollection() || sType.isArray() ||
(nn(wType) && (wType.isCollection() || wType.isArray()))) {
if (isCollapsed)
indent--;
serializeCollection(out, o, sType, eType,
pMeta, isMixedOrText);
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 7f6c7376ee..92759d8117 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
@@ -145,9 +145,7 @@ public abstract class UrlPathMatcher implements
Comparable<UrlPathMatcher> {
if (parts.length != pip.length) {
if (hasRemainder) {
- if (pip.length == parts.length - 1 && !
urlPath.isTrailingSlash())
- return null;
- else if (pip.length < parts.length)
+ if ((pip.length == parts.length - 1 &&
! urlPath.isTrailingSlash()) || pip.length < parts.length)
return null;
} else {
if (pip.length != parts.length + 1 || !
urlPath.isTrailingSlash())