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 b882084ab7 juneau-docs improvements
b882084ab7 is described below

commit b882084ab7b42661a75bc77ebb6cae473f2a8dc8
Author: James Bognar <[email protected]>
AuthorDate: Fri Dec 26 11:23:18 2025 -0500

    juneau-docs improvements
---
 .github/workflows/deploy-docs.yml                  | 10 ++++++
 .../org/apache/juneau/junit/bct/Listifiers.java    | 36 ++++++----------------
 .../apache/juneau/junit/bct/NestedTokenizer.java   |  4 +--
 .../commons/collections/ControlledArrayList.java   |  2 +-
 .../juneau/commons/collections/KeywordSet.java     |  2 +-
 .../apache/juneau/commons/collections/Lists.java   |  2 +-
 .../apache/juneau/commons/collections/Maps.java    |  2 +-
 .../apache/juneau/commons/collections/Sets.java    |  2 +-
 .../juneau/commons/io/CharSequenceReader.java      |  2 +-
 .../juneau/commons/io/FileReaderBuilder.java       |  2 +-
 .../juneau/commons/io/FileWriterBuilder.java       |  2 +-
 .../org/apache/juneau/commons/io/LocalDir.java     |  2 +-
 .../org/apache/juneau/commons/io/LocalFile.java    |  4 +--
 .../juneau/commons/io/NoCloseOutputStream.java     |  2 +-
 .../apache/juneau/commons/io/NoCloseWriter.java    |  2 +-
 .../juneau/commons/io/PathReaderBuilder.java       |  2 +-
 .../juneau/commons/io/StringBuilderWriter.java     |  2 +-
 .../apache/juneau/commons/lang/BooleanValue.java   |  2 +-
 .../org/apache/juneau/commons/lang/ByteValue.java  |  2 +-
 .../org/apache/juneau/commons/lang/CharValue.java  |  2 +-
 .../apache/juneau/commons/lang/DoubleValue.java    |  2 +-
 .../java/org/apache/juneau/commons/lang/Flag.java  |  2 +-
 .../org/apache/juneau/commons/lang/FloatValue.java |  2 +-
 .../apache/juneau/commons/lang/IntegerValue.java   |  2 +-
 .../org/apache/juneau/commons/lang/LongValue.java  |  2 +-
 .../org/apache/juneau/commons/lang/ShortValue.java |  2 +-
 .../apache/juneau/commons/lang/StringValue.java    |  2 +-
 .../java/org/apache/juneau/commons/lang/Value.java |  2 +-
 .../apache/juneau/commons/lang/ValueListener.java  |  2 +-
 .../apache/juneau/commons/reflect/ClassInfo.java   |  4 +--
 .../juneau/commons/reflect/ConstructorInfo.java    |  4 +--
 .../apache/juneau/commons/reflect/FieldInfo.java   |  2 +-
 .../apache/juneau/commons/reflect/MethodInfo.java  |  4 +--
 .../org/apache/juneau/commons/utils/Utils.java     |  6 ++--
 .../main/java/org/apache/juneau/config/Config.java |  4 +--
 .../java/org/apache/juneau/BeanPropertyMeta.java   |  4 +--
 .../src/main/java/org/apache/juneau/ClassMeta.java | 12 +++-----
 .../org/apache/juneau/svl/vars/NotEmptyVar.java    |  4 ++-
 .../juneau/utils/StringExpressionMatcher.java      |  3 +-
 .../java/org/apache/juneau/rest/RestContext.java   |  4 +--
 40 files changed, 73 insertions(+), 82 deletions(-)

diff --git a/.github/workflows/deploy-docs.yml 
b/.github/workflows/deploy-docs.yml
index 05125837cb..119da95b7c 100644
--- a/.github/workflows/deploy-docs.yml
+++ b/.github/workflows/deploy-docs.yml
@@ -66,12 +66,22 @@ jobs:
     - name: Generate Maven Site
       run: |
         mvn clean site
+        # Explicitly generate aggregate javadocs (may be skipped during site 
generation)
+        mvn javadoc:aggregate
         
     - name: Copy Maven Site to build directory
       run: |
         mkdir -p juneau-docs/build/site
         cp -r target/site/* juneau-docs/build/site/
         cp .asf.yaml juneau-docs/build
+        # Verify apidocs were generated
+        if [ ! -d "target/site/apidocs" ]; then
+          echo "ERROR: target/site/apidocs directory not found after 
generation!"
+          echo "Contents of target/site:"
+          ls -la target/site/ || true
+          exit 1
+        fi
+        echo "✓ Javadocs found in target/site/apidocs"
         
     - name: Deploy to staging branch
       uses: peaceiris/actions-gh-pages@v4
diff --git 
a/juneau-core/juneau-bct/src/main/java/org/apache/juneau/junit/bct/Listifiers.java
 
b/juneau-core/juneau-bct/src/main/java/org/apache/juneau/junit/bct/Listifiers.java
index 917917dfd9..cbe0da409b 100644
--- 
a/juneau-core/juneau-bct/src/main/java/org/apache/juneau/junit/bct/Listifiers.java
+++ 
b/juneau-core/juneau-bct/src/main/java/org/apache/juneau/junit/bct/Listifiers.java
@@ -20,6 +20,7 @@ import static java.util.Collections.*;
 import static java.util.Spliterators.*;
 import static java.util.stream.StreamSupport.*;
 import static org.apache.juneau.commons.utils.CollectionUtils.*;
+import static org.apache.juneau.commons.utils.Utils.*;
 import static org.apache.juneau.junit.bct.BctConfiguration.*;
 
 import java.util.*;
@@ -392,36 +393,19 @@ public class Listifiers {
         * @param converter The bean converter to use for stringification
         * @return A comparator that can handle any object type
         */
-       @SuppressWarnings("unchecked")
        private static Comparator<Object> flexibleComparator(BeanConverter 
converter) {
+               // Use default converter if null is passed
+               BeanConverter conv = converter != null ? converter : 
BasicBeanConverter.DEFAULT;
                return (o1, o2) -> {
-                       // Handle nulls
-                       if (o1 == null && o2 == null)
-                               return 0;
-                       if (o1 == null)
-                               return -1;
-                       if (o2 == null)
-                               return 1;
-
-                       // Try natural ordering if both are Comparable
-                       if (o1 instanceof Comparable o1c && o2 instanceof 
Comparable o2c) {
-                               try {
-                                       return o1c.compareTo(o2c);
-                               } catch (@SuppressWarnings("unused") 
ClassCastException e) {
-                                       // Comparing different types.  Fall 
back to string comparison below.
-                               }
-                       }
+                       // Try natural ordering using cmp() (handles nulls and 
Comparable objects)
+                       int result = cmp(o1, o2);
+                       if (result != 0)
+                               return result;
 
                        // Fall back to string comparison
-                       var s1 = converter.stringify(o1);
-                       var s2 = converter.stringify(o2);
-                       if (s1 == null && s2 == null)
-                               return 0;
-                       if (s1 == null)
-                               return -1;
-                       if (s2 == null)
-                               return 1;
-                       return s1.compareTo(s2);
+                       var s1 = conv.stringify(o1);
+                       var s2 = conv.stringify(o2);
+                       return cmp(s1, s2);
                };
        }
 
diff --git 
a/juneau-core/juneau-bct/src/main/java/org/apache/juneau/junit/bct/NestedTokenizer.java
 
b/juneau-core/juneau-bct/src/main/java/org/apache/juneau/junit/bct/NestedTokenizer.java
index 9d82670259..16396aa422 100644
--- 
a/juneau-core/juneau-bct/src/main/java/org/apache/juneau/junit/bct/NestedTokenizer.java
+++ 
b/juneau-core/juneau-bct/src/main/java/org/apache/juneau/junit/bct/NestedTokenizer.java
@@ -94,7 +94,7 @@ class NestedTokenizer {
                 * @param value The token value
                 */
                public Token(String value) {
-                       this.value = nn(value) ? value : "";
+                       this.value = def(value, "");
                }
 
                @Override
@@ -208,7 +208,7 @@ class NestedTokenizer {
                                                var value = 
currentValue.toString().trim();
                                                var nestedContent = 
in.substring(nestedStart, pos);
                                                var token = new Token(value);
-                                               if (! 
nestedContent.trim().isEmpty()) {
+                                               if (nb(nestedContent)) {
                                                        
token.setNested(tokenize(nestedContent));
                                                }
                                                tokens.add(token);
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/ControlledArrayList.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/ControlledArrayList.java
index d50526d19a..5aabbabf78 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/ControlledArrayList.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/ControlledArrayList.java
@@ -113,7 +113,7 @@ import java.util.function.*;
  * </p>
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>juneau-commons-collections</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>Collections
 Package</a>
  * </ul>
  *
  * @param <E> The element type.
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/KeywordSet.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/KeywordSet.java
index c2b1c4d1b0..c2c73f0727 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/KeywordSet.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/KeywordSet.java
@@ -97,7 +97,7 @@ import java.util.*;
  * </ul>
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>juneau-commons-collections</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>Collections
 Package</a>
  * </ul>
  */
 public class KeywordSet {
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Lists.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Lists.java
index ff052454d7..871294d469 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Lists.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Lists.java
@@ -103,7 +103,7 @@ import java.util.function.*;
  * properly synchronized.
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>juneau-commons-collections</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>Collections
 Package</a>
  *     <li class='jc'>{@link Maps}
  *     <li class='jc'>{@link Sets}
  * </ul>
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Maps.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Maps.java
index f7bed0b0ee..39e48db8e3 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Maps.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Maps.java
@@ -112,7 +112,7 @@ import java.util.function.*;
  * properly synchronized.
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>juneau-commons-collections</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>Collections
 Package</a>
  *     <li class='jc'>{@link Lists}
  *     <li class='jc'>{@link Sets}
  * </ul>
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Sets.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Sets.java
index 15cb0d968d..6c131bd250 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Sets.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Sets.java
@@ -109,7 +109,7 @@ import java.util.function.*;
  * properly synchronized.
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>juneau-commons-collections</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>Collections
 Package</a>
  *     <li class='jc'>{@link Lists}
  *     <li class='jc'>{@link Maps}
  * </ul>
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/CharSequenceReader.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/CharSequenceReader.java
index 09a5d30fca..09ab6c2354 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/CharSequenceReader.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/CharSequenceReader.java
@@ -81,7 +81,7 @@ import java.io.*;
  * is not modified during reading, or use external synchronization.
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsIO";>juneau-commons-io</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsIO";>I/O Package</a>
  * </ul>
  */
 public class CharSequenceReader extends BufferedReader {
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/FileReaderBuilder.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/FileReaderBuilder.java
index 1a606e55b1..c1cfcbd079 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/FileReaderBuilder.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/FileReaderBuilder.java
@@ -75,7 +75,7 @@ import java.nio.charset.*;
  * <h5 class='section'>See Also:</h5><ul>
  *     <li class='jc'>{@link FileWriterBuilder} - Builder for file writers
  *     <li class='jc'>{@link PathReaderBuilder} - Builder for Path-based 
readers
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsIO";>juneau-commons-io</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsIO";>I/O Package</a>
  * </ul>
  */
 public class FileReaderBuilder {
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/FileWriterBuilder.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/FileWriterBuilder.java
index 47579619aa..226fba11c0 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/FileWriterBuilder.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/FileWriterBuilder.java
@@ -76,7 +76,7 @@ import java.nio.charset.*;
  *
  * <h5 class='section'>See Also:</h5><ul>
  *     <li class='jc'>{@link FileReaderBuilder} - Builder for file readers
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsIO";>juneau-commons-io</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsIO";>I/O Package</a>
  * </ul>
  */
 public class FileWriterBuilder {
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/LocalDir.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/LocalDir.java
index 4c59c3b73b..280e7ccfb0 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/LocalDir.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/LocalDir.java
@@ -80,7 +80,7 @@ import java.nio.file.*;
  *
  * <h5 class='section'>See Also:</h5><ul>
  *     <li class='jc'>{@link LocalFile} - File counterpart for individual file 
access
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsIO";>juneau-commons-io</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsIO";>I/O Package</a>
  * </ul>
  */
 public class LocalDir {
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/LocalFile.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/LocalFile.java
index 3558a56fd5..888c042170 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/LocalFile.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/LocalFile.java
@@ -79,7 +79,7 @@ import java.nio.file.*;
  *
  * <h5 class='section'>See Also:</h5><ul>
  *     <li class='jc'>{@link LocalDir} - Directory counterpart for resolving 
files within directories
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsIO";>juneau-commons-io</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsIO";>I/O Package</a>
  * </ul>
  */
 @SuppressWarnings("resource")
@@ -248,7 +248,7 @@ public class LocalFile {
                if (nn(clazz)) {
                        var is = clazz.getResourceAsStream(clazzPath);
                        if (is == null)
-                               throw new IOException("Classpath resource not 
found: " + clazzPath + " (relative to " + clazz.getName() + ")");
+                               throw new IOException("Classpath resource not 
found: " + clazzPath + " (relative to " + cn(clazz) + ")");
                        return is;
                }
                return Files.newInputStream(path);
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/NoCloseOutputStream.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/NoCloseOutputStream.java
index 213bc722b7..cb5d4e92d9 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/NoCloseOutputStream.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/NoCloseOutputStream.java
@@ -67,7 +67,7 @@ import java.io.*;
  *
  * <h5 class='section'>See Also:</h5><ul>
  *     <li class='jc'>{@link NoCloseWriter} - Writer counterpart
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsIO";>juneau-commons-io</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsIO";>I/O Package</a>
  * </ul>
  */
 public class NoCloseOutputStream extends OutputStream {
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/NoCloseWriter.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/NoCloseWriter.java
index 1bb212b444..012c96d8e8 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/NoCloseWriter.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/NoCloseWriter.java
@@ -67,7 +67,7 @@ import java.io.*;
  *
  * <h5 class='section'>See Also:</h5><ul>
  *     <li class='jc'>{@link NoCloseOutputStream} - OutputStream counterpart
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsIO";>juneau-commons-io</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsIO";>I/O Package</a>
  * </ul>
  */
 public class NoCloseWriter extends Writer {
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/PathReaderBuilder.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/PathReaderBuilder.java
index caaea9ed95..8034c0e5da 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/PathReaderBuilder.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/PathReaderBuilder.java
@@ -85,7 +85,7 @@ import java.nio.file.*;
  *
  * <h5 class='section'>See Also:</h5><ul>
  *     <li class='jc'>{@link FileReaderBuilder} - Builder for File-based 
readers
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsIO";>juneau-commons-io</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsIO";>I/O Package</a>
  * </ul>
  *
  * @since 9.1.0
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/StringBuilderWriter.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/StringBuilderWriter.java
index 5fbbd417e0..4ce2aefc12 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/StringBuilderWriter.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/StringBuilderWriter.java
@@ -78,7 +78,7 @@ import java.io.*;
  * external synchronization is required.
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsIO";>juneau-commons-io</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsIO";>I/O Package</a>
  * </ul>
  */
 public class StringBuilderWriter extends Writer {
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/BooleanValue.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/BooleanValue.java
index 4e57a8bd2e..6570329d4b 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/BooleanValue.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/BooleanValue.java
@@ -55,7 +55,7 @@ import java.util.concurrent.atomic.*;
  * </p>
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>juneau-commons-collections</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsLang";>Lang Package</a>
  *     <li class='jc'>{@link Flag}
  * </ul>
  */
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/ByteValue.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/ByteValue.java
index 9dea780c78..ed83f51b92 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/ByteValue.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/ByteValue.java
@@ -47,7 +47,7 @@ import static org.apache.juneau.commons.utils.Utils.*;
  * </p>
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>juneau-commons-collections</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsLang";>Lang Package</a>
  * </ul>
  */
 public class ByteValue extends Value<Byte> {
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/CharValue.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/CharValue.java
index 0a77af0d8e..3e2d1dde43 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/CharValue.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/CharValue.java
@@ -47,7 +47,7 @@ import static org.apache.juneau.commons.utils.Utils.*;
  * </p>
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>juneau-commons-collections</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsLang";>Lang Package</a>
  * </ul>
  */
 public class CharValue extends Value<Character> {
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/DoubleValue.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/DoubleValue.java
index 71434ee20b..ac4ee61bab 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/DoubleValue.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/DoubleValue.java
@@ -44,7 +44,7 @@ import static 
org.apache.juneau.commons.utils.AssertionUtils.*;
  * </p>
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>juneau-commons-collections</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsLang";>Lang Package</a>
  * </ul>
  */
 public class DoubleValue extends Value<Double> {
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/Flag.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/Flag.java
index d0bdef60f4..a2ff7d4fc9 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/Flag.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/Flag.java
@@ -55,7 +55,7 @@ import org.apache.juneau.commons.function.*;
  * </p>
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>juneau-commons-collections</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsLang";>Lang Package</a>
  *     <li class='jc'>{@link BooleanValue}
  * </ul>
  */
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/FloatValue.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/FloatValue.java
index c3e3bb8132..8760220b86 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/FloatValue.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/FloatValue.java
@@ -44,7 +44,7 @@ import static 
org.apache.juneau.commons.utils.AssertionUtils.*;
  * </p>
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>juneau-commons-collections</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsLang";>Lang Package</a>
  * </ul>
  */
 public class FloatValue extends Value<Float> {
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/IntegerValue.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/IntegerValue.java
index 4e0e9fb7ec..d78ba1476c 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/IntegerValue.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/IntegerValue.java
@@ -47,7 +47,7 @@ import static org.apache.juneau.commons.utils.Utils.*;
  * </p>
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>juneau-commons-collections</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsLang";>Lang Package</a>
  * </ul>
  */
 public class IntegerValue extends Value<Integer> {
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/LongValue.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/LongValue.java
index 5a8190b627..1d838a6f26 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/LongValue.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/LongValue.java
@@ -49,7 +49,7 @@ import java.util.concurrent.atomic.*;
  * </p>
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>juneau-commons-collections</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsLang";>Lang Package</a>
  * </ul>
  */
 public class LongValue extends Value<Long> {
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/ShortValue.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/ShortValue.java
index 266166c9f8..b07ee516b4 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/ShortValue.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/ShortValue.java
@@ -49,7 +49,7 @@ import java.util.concurrent.atomic.*;
  * </p>
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>juneau-commons-collections</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsLang";>Lang Package</a>
  * </ul>
  */
 public class ShortValue extends Value<Short> {
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/StringValue.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/StringValue.java
index 94685179d8..6d09bf57ce 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/StringValue.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/StringValue.java
@@ -48,7 +48,7 @@ import static org.apache.juneau.commons.utils.Utils.*;
  * </p>
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>juneau-commons-collections</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsLang";>Lang Package</a>
  * </ul>
  */
 public class StringValue extends Value<String> {
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/Value.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/Value.java
index 85441d58b4..8b4fd49b4b 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/Value.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/Value.java
@@ -96,7 +96,7 @@ import org.apache.juneau.commons.reflect.ClassInfo;
  * </ul>
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>juneau-commons-collections</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsLang";>Lang Package</a>
  *     <li class='jc'>{@link ValueListener}
  *     <li class='jc'>{@link IntegerValue}
  *     <li class='jc'>{@link BooleanValue}
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/ValueListener.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/ValueListener.java
index 77b651a86e..dd473e8d63 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/ValueListener.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/ValueListener.java
@@ -77,7 +77,7 @@ package org.apache.juneau.commons.lang;
  * </ul>
  *
  * <h5 class='section'>See Also:</h5><ul>
- *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsCollections";>juneau-commons-collections</a>
+ *     <li class='link'><a class="doclink" 
href="https://juneau.apache.org/docs/topics/JuneauCommonsLang";>Lang Package</a>
  *     <li class='jc'>{@link Value}
  * </ul>
  *
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 67ac32e7ee..1e75e7c0f2 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
@@ -500,7 +500,7 @@ public class ClassInfo extends ElementInfo implements 
Annotatable, Type, Compara
        public int compareTo(ClassInfo o) {
                if (o == null)
                        return 1;
-               return getName().compareTo(o.getName());
+               return cmp(getName(), o.getName());
        }
 
        /**
@@ -1983,7 +1983,7 @@ public class ClassInfo extends ElementInfo implements 
Annotatable, Type, Compara
         * @return <jk>true</jk> if this class is a child or the same as 
<c>parent</c>.
         */
        public boolean isChildOf(Class<?> parent) {
-               return nn(inner) && nn(parent) && 
parent.isAssignableFrom(inner);
+               return and(nn(inner), nn(parent)) && 
parent.isAssignableFrom(inner);
        }
 
        /**
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ConstructorInfo.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ConstructorInfo.java
index f87a6378f8..6c6598ebe2 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ConstructorInfo.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/ConstructorInfo.java
@@ -139,14 +139,14 @@ public class ConstructorInfo extends ExecutableInfo 
implements Comparable<Constr
 
        @Override
        public int compareTo(ConstructorInfo o) {
-               int i = getSimpleName().compareTo(o.getSimpleName());
+               int i = cmp(getSimpleName(), o.getSimpleName());
                if (i == 0) {
                        i = getParameterCount() - o.getParameterCount();
                        if (i == 0) {
                                var params = getParameters();
                                var oParams = o.getParameters();
                                for (var j = 0; j < params.size() && i == 0; 
j++) {
-                                       i = 
params.get(j).getParameterType().getName().compareTo(oParams.get(j).getParameterType().getName());
+                                       i = 
cmp(params.get(j).getParameterType().getName(), 
oParams.get(j).getParameterType().getName());
                                }
                        }
                }
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/FieldInfo.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/FieldInfo.java
index 00a0d6b932..f554a775a6 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/FieldInfo.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/FieldInfo.java
@@ -164,7 +164,7 @@ public class FieldInfo extends AccessibleInfo implements 
Comparable<FieldInfo>,
 
        @Override
        public int compareTo(FieldInfo o) {
-               return getName().compareTo(o.getName());
+               return cmp(getName(), o.getName());
        }
 
        /**
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/MethodInfo.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/MethodInfo.java
index 82f3d9ed4f..2b12092bdf 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/MethodInfo.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/MethodInfo.java
@@ -169,14 +169,14 @@ public class MethodInfo extends ExecutableInfo implements 
Comparable<MethodInfo>
 
        @Override
        public int compareTo(MethodInfo o) {
-               int i = getSimpleName().compareTo(o.getSimpleName());
+               int i = cmp(getSimpleName(), o.getSimpleName());
                if (i == 0) {
                        var params = getParameters();
                        var oParams = o.getParameters();
                        i = params.size() - oParams.size();
                        if (i == 0) {
                                for (var j = 0; j < params.size() && i == 0; 
j++) {
-                                       i = 
params.get(j).getParameterType().getName().compareTo(oParams.get(j).getParameterType().getName());
+                                       i = 
cmp(params.get(j).getParameterType().getName(), 
oParams.get(j).getParameterType().getName());
                                }
                        }
                }
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/Utils.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/Utils.java
index cbf8d79779..70a12aa00d 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/Utils.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/Utils.java
@@ -2075,7 +2075,7 @@ public class Utils {
         * @return <jk>true</jk> if the string starts with the prefix.
         */
        public static boolean sw(String str, String prefix) {
-               return nn(str) && nn(prefix) && str.startsWith(prefix);
+               return and(nn(str), nn(prefix)) && str.startsWith(prefix);
        }
 
        /**
@@ -2096,7 +2096,7 @@ public class Utils {
         * @return <jk>true</jk> if the string ends with the suffix.
         */
        public static boolean ew(String str, String suffix) {
-               return nn(str) && nn(suffix) && str.endsWith(suffix);
+               return and(nn(str), nn(suffix)) && str.endsWith(suffix);
        }
 
        /**
@@ -2117,7 +2117,7 @@ public class Utils {
         * @return <jk>true</jk> if the string contains the substring.
         */
        public static boolean co(String str, String substring) {
-               return nn(str) && nn(substring) && str.contains(substring);
+               return and(nn(str), nn(substring)) && str.contains(substring);
        }
 
        /**
diff --git 
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java 
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
index 50d4189bb5..76d3227980 100644
--- 
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
+++ 
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
@@ -470,7 +470,7 @@ public class Config extends Context implements 
ConfigEventListener {
                }
 
                var cmd = System.getProperty("sun.java.command", 
"not_found").split("\\s+")[0];
-               if (cmd.endsWith(".jar") && ! cmd.contains("surefirebooter")) {
+               if (cmd.endsWith(".jar") && ! co(cmd, "surefirebooter")) {
                        cmd = cmd.replaceAll(".*?([^\\\\\\/]+)\\.jar$", "$1");
                        l.add(cmd + ".cfg");
                        cmd = cmd.replaceAll("[\\.\\_].*$", "");  // Try also 
without version in jar name.
@@ -1236,7 +1236,7 @@ public class Config extends Context implements 
ConfigEventListener {
 
        Mod getMod(char id) {
                var x = mods.get(id);
-               return x == null ? Mod.NO_OP : x;
+               return def(x, Mod.NO_OP);
        }
 
        String removeMods(String mods, String x) {
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 54db30528f..27db36e58e 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
@@ -675,7 +675,7 @@ public class BeanPropertyMeta implements 
Comparable<BeanPropertyMeta> {
 
        @Override /* Overridden from Comparable */
        public int compareTo(BeanPropertyMeta o) {
-               return name.compareTo(o.name);
+               return cmp(name, o.name);
        }
 
        @Override /* Overridden from Object */
@@ -798,7 +798,7 @@ public class BeanPropertyMeta implements 
Comparable<BeanPropertyMeta> {
         *
         * @return the metadata on the property that this metadata is a 
delegate for, or this object if it's not a delegate.
         */
-       public BeanPropertyMeta getDelegateFor() { return nn(delegateFor) ? 
delegateFor : this; }
+       public BeanPropertyMeta getDelegateFor() { return def(delegateFor, 
this); }
 
        /**
         * Returns the {@link Map} object returned by the DynaBean getter.
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
index 944df30a7f..6f73df7698 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
@@ -128,7 +128,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
         * Generated classes shouldn't be cacheable to prevent needlessly 
filling up the cache.
         */
        private static boolean isCacheable(Class<?> c) {
-               var n = c.getName();
+               var n = cn(c);
                var x = n.charAt(n.length() - 1);  // All generated classes 
appear to end with digits.
                if (x >= '0' && x <= '9') {
                        if (n.indexOf("$$") != -1 || n.startsWith("sun") || 
n.startsWith("com.sun") || n.indexOf("$Proxy") != -1)
@@ -1209,7 +1209,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
                if (isEnum()) {
                        var t = (T)enumValues.get().getKey(arg);
                        if (t == null && ! 
beanContext.isIgnoreUnknownEnumValues())
-                               throw new ExecutableException("Could not 
resolve enum value ''{0}'' on class ''{1}''", arg, inner().getName());
+                               throw new ExecutableException("Could not 
resolve enum value ''{0}'' on class ''{1}''", arg, cn(inner()));
                        return t;
                }
 
@@ -1221,7 +1221,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
                                return 
stringConstructor.get().<T>newInstance(outer, arg);
                        return stringConstructor.get().<T>newInstance(arg);
                }
-               throw new ExecutableException("No string constructor or 
valueOf(String) method found for class '" + inner().getName() + "'");
+               throw new ExecutableException("No string constructor or 
valueOf(String) method found for class '" + cn(inner()) + "'");
        }
 
        /**
@@ -1739,11 +1739,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
         * @return The passed-in string builder.
         */
        protected StringBuilder toString(StringBuilder sb, boolean simple) {
-               var n = inner().getName();
-               if (simple) {
-                       var i = n.lastIndexOf('.');
-                       n = n.substring(i == -1 ? 0 : i + 1).replace('$', '.');
-               }
+               var n = simple ? cnsq(inner()) : cn(inner());
                if (cat.is(ARRAY))
                        return elementType.get().toString(sb, 
simple).append('[').append(']');
                if (cat.is(BEANMAP))
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/NotEmptyVar.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/NotEmptyVar.java
index f96c089e38..edcb412c05 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/NotEmptyVar.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/NotEmptyVar.java
@@ -16,6 +16,8 @@
  */
 package org.apache.juneau.svl.vars;
 
+import static org.apache.juneau.commons.utils.Utils.*;
+
 import org.apache.juneau.svl.*;
 
 /**
@@ -49,6 +51,6 @@ public class NotEmptyVar extends SimpleVar {
 
        @Override /* Overridden from Parameter */
        public String resolve(VarResolverSession session, String key) {
-               return String.valueOf(! key.trim().isEmpty());
+               return String.valueOf(nb(key));
        }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/StringExpressionMatcher.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/StringExpressionMatcher.java
index dfc15fe22a..f437caa852 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/StringExpressionMatcher.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/StringExpressionMatcher.java
@@ -26,7 +26,6 @@ import java.util.*;
 import java.util.regex.*;
 
 import org.apache.juneau.commons.lang.*;
-import org.apache.juneau.commons.utils.*;
 
 /**
  * Utility class for matching strings against string expressions.
@@ -230,7 +229,7 @@ public class StringExpressionMatcher {
        }
 
        private Exp parse(String expression) throws ParseException {
-               if (StringUtils.isBlank(expression))
+               if (b(expression))
                        return new Never();
 
                expression = expression.trim();
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
index 00b16300e7..e1c2b60ee0 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -5900,10 +5900,10 @@ public class RestContext extends Context {
 
                String n = cn(t);
 
-               if (n.contains("AccessDenied") || n.contains("Unauthorized"))
+               if (co(n, "AccessDenied") || co(n, "Unauthorized"))
                        return new Unauthorized(t);
 
-               if (n.contains("Empty") || n.contains("NotFound"))
+               if (co(n, "Empty") || co(n, "NotFound"))
                        return new NotFound(t);
 
                return t;


Reply via email to