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())

Reply via email to