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 e3c2bdf  Clean up ExceptionUtils.
e3c2bdf is described below

commit e3c2bdfbbd51586252f67fe592c556db993e1741
Author: JamesBognar <[email protected]>
AuthorDate: Wed Apr 21 17:06:50 2021 -0400

    Clean up ExceptionUtils.
---
 .../java/org/apache/juneau/BasicException.java     |  2 +-
 .../juneau/BasicIllegalArgumentException.java      | 72 ----------------------
 .../main/java/org/apache/juneau/BeanSession.java   |  5 +-
 .../org/apache/juneau/assertions/Assertions.java   | 21 +++++--
 .../org/apache/juneau/http/header/EntityTag.java   |  9 ++-
 .../org/apache/juneau/http/header/HeaderList.java  |  4 +-
 .../apache/juneau/http/part/BasicIntegerPart.java  |  4 +-
 .../org/apache/juneau/http/part/BasicLongPart.java |  4 +-
 .../java/org/apache/juneau/http/part/PartList.java |  4 +-
 .../org/apache/juneau/internal/ExceptionUtils.java | 21 +++++++
 .../java/org/apache/juneau/internal/SimpleMap.java | 13 ++--
 .../org/apache/juneau/internal/StringUtils.java    |  5 +-
 .../org/apache/juneau/internal/ThrowableUtils.java | 15 -----
 .../java/org/apache/juneau/reflect/ClassInfo.java  | 16 +++--
 .../main/java/org/apache/juneau/svl/MapVar.java    |  6 +-
 .../src/main/java/org/apache/juneau/svl/Var.java   | 13 ++--
 .../java/org/apache/juneau/svl/vars/IfVar.java     |  6 +-
 .../java/org/apache/juneau/svl/vars/LenVar.java    |  6 +-
 .../apache/juneau/svl/vars/PatternExtractVar.java  |  6 +-
 .../apache/juneau/svl/vars/PatternMatchVar.java    |  6 +-
 .../apache/juneau/svl/vars/PatternReplaceVar.java  |  6 +-
 .../org/apache/juneau/svl/vars/SubstringVar.java   |  7 +--
 .../java/org/apache/juneau/svl/vars/SwitchVar.java |  9 +--
 .../org/apache/juneau/http/EntityTag_Test.java     |  2 +-
 .../apache/juneau/reflection/ClassInfoTest.java    |  2 +-
 25 files changed, 87 insertions(+), 177 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicException.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicException.java
index 39343bc..b60f5d7 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicException.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicException.java
@@ -21,7 +21,7 @@ import org.apache.juneau.internal.*;
 /**
  * Subclass of non-runtime exceptions that take in a message and zero or more 
arguments.
  */
-public class BasicException extends Exception {
+public abstract class BasicException extends Exception {
 
        private static final long serialVersionUID = 1L;
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicIllegalArgumentException.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicIllegalArgumentException.java
deleted file mode 100644
index 08b408d..0000000
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicIllegalArgumentException.java
+++ /dev/null
@@ -1,72 +0,0 @@
-// 
***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance            *
-// * with the License.  You may obtain a copy of the License at                
                                              *
-// *                                                                           
                                              *
-// *  http://www.apache.org/licenses/LICENSE-2.0                               
                                              *
-// *                                                                           
                                              *
-// * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
-// * specific language governing permissions and limitations under the 
License.                                              *
-// 
***************************************************************************************************************************
-package org.apache.juneau;
-
-import static org.apache.juneau.internal.StringUtils.*;
-
-import java.text.*;
-
-import org.apache.juneau.internal.*;
-import org.apache.juneau.reflect.*;
-
-/**
- * Subclass of illegal-argument exceptions that take in a message and zero or 
more arguments.
- */
-public class BasicIllegalArgumentException extends IllegalArgumentException {
-
-       private static final long serialVersionUID = 1L;
-
-       /**
-        * Constructor.
-        *
-        * @param message The {@link MessageFormat}-style message.
-        * @param args Optional {@link MessageFormat}-style arguments.
-        */
-       public BasicIllegalArgumentException(String message, Object...args) {
-               super(format(message, args));
-       }
-
-       /**
-        * Constructor.
-        *
-        * @param causedBy The cause of this exception.
-        * @param message The {@link MessageFormat}-style message.
-        * @param args Optional {@link MessageFormat}-style arguments.
-        */
-       public BasicIllegalArgumentException(Throwable causedBy, String 
message, Object...args) {
-               this(message, args);
-               initCause(causedBy);
-       }
-
-       /**
-        * Throws a {@link BasicIllegalArgumentException} if the specified 
method does not only contain args of the specified types.
-        *
-        * @param m The method to check.
-        * @param args The allowed args.
-        */
-       public static void assertArgsOnlyOfType(MethodInfo m, Class<?>...args) {
-               if (! m.argsOnlyOfType(args))
-                       throw new BasicIllegalArgumentException("Invalid 
arguments passed to method {0}.  Only arguments of type {1} are allowed.", m, 
args);
-       }
-
-       /**
-        * Same as {@link #getCause()} but searches the throwable chain for an 
exception of the specified type.
-        *
-        * @param c The throwable type to search for.
-        * @param <T> The throwable type to search for.
-        * @return The exception, or <jk>null</jk> if not found.
-        */
-       public <T extends Throwable> T getCause(Class<T> c) {
-               return ThrowableUtils.getCause(c, this);
-       }
-}
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
index 758caac..32a7116 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
@@ -13,7 +13,6 @@
 package org.apache.juneau;
 
 import static org.apache.juneau.internal.StringUtils.*;
-import static org.apache.juneau.internal.ThrowableUtils.*;
 import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.internal.ClassUtils.*;
 import static org.apache.juneau.internal.IOUtils.*;
@@ -833,9 +832,7 @@ public class BeanSession extends Session {
        public final <T> BeanMap<T> toBeanMap(T o, Class<? super T> c) throws 
BeanRuntimeException {
                assertArgNotNull("o", o);
                assertArgNotNull("c", c);
-
-               if (! c.isInstance(o))
-                       illegalArg("The specified object is not an instance of 
the specified class.  class=''{0}'', objectClass=''{1}'', object=''{2}''", 
className(c), className(o), 0);
+               assertArg(c.isInstance(o), "The specified object is not an 
instance of the specified class.  class=''{0}'', objectClass=''{1}'', 
object=''{2}''", className(c), className(o), 0);
 
                ClassMeta cm = getClassMeta(c);
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/Assertions.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/Assertions.java
index 02576b3..cca32e6 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/Assertions.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/Assertions.java
@@ -12,6 +12,7 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.assertions;
 
+import static org.apache.juneau.internal.ExceptionUtils.*;
 import static org.apache.juneau.internal.IOUtils.*;
 
 import java.io.*;
@@ -577,14 +578,26 @@ public class Assertions {
         * Throws an {@link IllegalArgumentException} if the specified argument 
is <jk>null</jk>.
         *
         * @param <T> The argument data type.
-        * @param arg The argument name.
+        * @param name The argument name.
         * @param o The object to check.
         * @return The same argument.
         * @throws IllegalArgumentException Constructed exception.
         */
-       public static final <T> T assertArgNotNull(String arg, T o) throws 
IllegalArgumentException {
-               if (o == null)
-                       throw new BasicIllegalArgumentException("Argument 
''{0}'' cannot be null", arg);
+       public static final <T> T assertArgNotNull(String name, T o) throws 
IllegalArgumentException {
+               assertArg(o != null, "Argument ''{0}'' cannot be null", name);
                return o;
        }
+
+       /**
+        * Throws an {@link IllegalArgumentException} if the specified 
expression is <jk>false</jk>.
+        *
+        * @param expression The boolean expression to check.
+        * @param msg The exception message.
+        * @param args The exception message args.
+        * @throws IllegalArgumentException Constructed exception.
+        */
+       public static final void assertArg(boolean expression, String msg, 
Object...args) throws IllegalArgumentException {
+               if (! expression)
+                       throw illegalArgumentException(msg, args);
+       }
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/EntityTag.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/EntityTag.java
index f386a36..c04be39 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/EntityTag.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/EntityTag.java
@@ -13,10 +13,10 @@
 package org.apache.juneau.http.header;
 
 import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.assertions.Assertions.*;
+import static org.apache.juneau.internal.ExceptionUtils.*;
 import static org.apache.juneau.internal.ObjectUtils.*;
 
-import org.apache.juneau.*;
-
 /**
  * Represents a validator value.
  *
@@ -55,8 +55,7 @@ public class EntityTag {
         * @throws IllegalArgumentException If attempting to set an invalid 
entity tag value.
         */
        public EntityTag(String value) {
-               if (value == null)
-                       throw new BasicIllegalArgumentException("Invalid value 
for entity-tag: [null]");
+               assertArgNotNull("value", value);
 
                value = trim(emptyIfNull(value));
                isWeak = value.startsWith("W/");
@@ -68,7 +67,7 @@ public class EntityTag {
                        if (value.length() > 1 && value.charAt(0) == '"' && 
value.charAt(value.length()-1) == '"')
                                value = value.substring(1, value.length()-1);
                        else
-                               throw new 
BasicIllegalArgumentException("Invalid value for entity-tag: [{0}]", isWeak ? 
("W/"+value) : value);
+                               throw illegalArgumentException("Invalid value 
for entity-tag: [{0}]", isWeak ? ("W/"+value) : value);
                }
                this.value = value;
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderList.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderList.java
index c33411f..4e6abdb 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderList.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderList.java
@@ -21,7 +21,6 @@ import java.util.stream.*;
 
 import org.apache.http.*;
 import org.apache.http.util.*;
-import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.http.HttpHeaders;
 import org.apache.juneau.internal.*;
@@ -428,8 +427,7 @@ public class HeaderList {
                assertArgNotNull("type", type);
 
                String name = HeaderBeanMeta.of(type).getSchema().getName();
-               if (name == null)
-                       throw new BasicIllegalArgumentException("Header name 
could not be found on bean type ''{0}''", type.getName());
+               assertArg(name != null, "Header name could not be found on bean 
type ''{0}''", type.getName());
 
                return get(name, type);
        }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicIntegerPart.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicIntegerPart.java
index e254b05..3673fe3 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicIntegerPart.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicIntegerPart.java
@@ -12,6 +12,7 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.http.part;
 
+import static org.apache.juneau.internal.ExceptionUtils.*;
 import static org.apache.juneau.internal.StringUtils.*;
 import static java.util.Optional.*;
 
@@ -19,7 +20,6 @@ import java.util.*;
 import java.util.function.*;
 
 import org.apache.http.*;
-import org.apache.juneau.*;
 import org.apache.juneau.assertions.*;
 
 /**
@@ -136,7 +136,7 @@ public class BasicIntegerPart extends BasicPart {
                                Long.parseLong(s);
                                return Integer.MAX_VALUE;
                        } catch (NumberFormatException e2) {
-                               throw new BasicIllegalArgumentException("Value 
could not be parsed as an int: {0}", o);
+                               throw illegalArgumentException("Value could not 
be parsed as an int: {0}", o);
                        }
                }
        }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicLongPart.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicLongPart.java
index 49a19db..fa67e97 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicLongPart.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicLongPart.java
@@ -12,6 +12,7 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.http.part;
 
+import static org.apache.juneau.internal.ExceptionUtils.*;
 import static org.apache.juneau.internal.StringUtils.*;
 import static java.util.Optional.*;
 
@@ -19,7 +20,6 @@ import java.util.*;
 import java.util.function.*;
 
 import org.apache.http.*;
-import org.apache.juneau.*;
 import org.apache.juneau.assertions.*;
 
 /**
@@ -130,7 +130,7 @@ public class BasicLongPart extends BasicPart {
                try {
                        return Long.parseLong(s);
                } catch (NumberFormatException e) {
-                       throw new BasicIllegalArgumentException("Value could 
not be parsed as a long: {0}", o);
+                       throw illegalArgumentException("Value could not be 
parsed as a long: {0}", o);
                }
        }
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartList.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartList.java
index a0f9ef4..fcb37bc 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartList.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartList.java
@@ -22,7 +22,6 @@ import java.util.stream.*;
 
 import org.apache.http.*;
 import org.apache.http.util.*;
-import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.http.HttpParts;
 import org.apache.juneau.http.annotation.*;
@@ -416,8 +415,7 @@ public class PartList {
                assertArgNotNull("type", type);
 
                String name = PartBeanMeta.of(type).getSchema().getName();
-               if (name == null)
-                       throw new BasicIllegalArgumentException("Part name 
could not be found on bean type ''{0}''", type.getName());
+               assertArg(name != null, "Part name could not be found on bean 
type ''{0}''", type.getName());
 
                return get(name, type);
        }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ExceptionUtils.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ExceptionUtils.java
index b4363d9..7e20153 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ExceptionUtils.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ExceptionUtils.java
@@ -127,4 +127,25 @@ public class ExceptionUtils {
        public static UnsupportedOperationException 
unsupportedOperationException(String msg, Object...args) {
                return unsupportedOperationException().message(msg, 
args).build();
        }
+
+       /**
+        * Creates a new builder for {@link IllegalArgumentException} objects.
+        *
+        * @return A new builder for {@link IllegalArgumentException} objects.
+        */
+       public static ExceptionBuilder<IllegalArgumentException> 
illegalArgumentException() {
+               return new ExceptionBuilder<>(IllegalArgumentException.class);
+       }
+
+       /**
+        * Creates a new {@link UnsupportedOperationException}.
+        *
+        * @param msg The exception message.  Can be <jk>null</jk>.
+        *      <br>If <jk>null</jk>, then the caused-by message is used if 
available.
+        * @param args The exception message arguments.
+        * @return A new {@link UnsupportedOperationException}.
+        */
+       public static IllegalArgumentException illegalArgumentException(String 
msg, Object...args) {
+               return illegalArgumentException().message(msg, args).build();
+       }
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/SimpleMap.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/SimpleMap.java
index f08ba1c..81fbbb1 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/SimpleMap.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/SimpleMap.java
@@ -14,13 +14,10 @@ package org.apache.juneau.internal;
 
 import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.internal.ArrayUtils.*;
-import static org.apache.juneau.internal.ThrowableUtils.*;
-
+import static org.apache.juneau.internal.ExceptionUtils.*;
 import java.lang.reflect.*;
 import java.util.*;
 
-import org.apache.juneau.*;
-
 /**
  * An instance of a <c>Map</c> where the keys and values are simple arrays.
  *
@@ -52,15 +49,13 @@ public final class SimpleMap<K,V> extends AbstractMap<K,V> {
        public SimpleMap(K[] keys, V[] values) {
                assertArgNotNull("keys", keys);
                assertArgNotNull("values", values);
-               if (keys.length != values.length)
-                       illegalArg("keys ''{0}'' and values ''{1}'' array 
lengths differ", keys.length, values.length);
+               assertArg(keys.length == values.length, "keys ''{0}'' and 
values ''{1}'' array lengths differ", keys.length, values.length);
 
                this.keys = keys;
                this.values = values;
                entries = (SimpleMapEntry[]) 
Array.newInstance(SimpleMapEntry.class, keys.length);
                for (int i = 0; i < keys.length; i++) {
-                       if (keys[i] == null)
-                               illegalArg("Keys array cannot contain a null 
value.");
+                       assertArg(keys[i] != null, "Keys array cannot contain a 
null value.");
                        entries[i] = new SimpleMapEntry(i);
        }
        }
@@ -92,7 +87,7 @@ public final class SimpleMap<K,V> extends AbstractMap<K,V> {
                                return v;
                        }
                }
-               throw new BasicIllegalArgumentException("No key ''{0}'' defined 
in map", key);
+               throw illegalArgumentException("No key ''{0}'' defined in map", 
key);
        }
 
        final class SimpleMapEntry implements Map.Entry<K,V> {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java
index b301391..e64c92d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/StringUtils.java
@@ -15,8 +15,6 @@ package org.apache.juneau.internal;
 import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.internal.ExceptionUtils.*;
 import static org.apache.juneau.internal.IOUtils.*;
-import static org.apache.juneau.internal.ThrowableUtils.*;
-
 import java.io.*;
 import java.lang.reflect.*;
 import java.math.*;
@@ -1422,8 +1420,7 @@ public final class StringUtils {
 
                byte bIn[] = in.getBytes(IOUtils.UTF8);
 
-               if (bIn.length % 4 != 0)
-                       illegalArg("Invalid BASE64 string length.  Must be 
multiple of 4.");
+               assertArg(bIn.length % 4 == 0, "Invalid BASE64 string length.  
Must be multiple of 4.");
 
                // Strip out any trailing '=' filler characters.
                int inLength = bIn.length;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ThrowableUtils.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ThrowableUtils.java
index 836eadd..1ee8952 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ThrowableUtils.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ThrowableUtils.java
@@ -12,27 +12,12 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.internal;
 
-import java.text.*;
-
-import org.apache.juneau.*;
-
 /**
  * Various utility methods for creating and working with throwables.
  */
 public class ThrowableUtils {
 
        /**
-        * Shortcut for calling <code><jk>new</jk> 
IllegalArgumentException(MessageFormat.<jsm>format</jsm>(msg, args));</code>
-        *
-        * @param msg The message of the IllegalArgumentException.
-        * @param args Optional {@link MessageFormat}-style arguments.
-        * @throws IllegalArgumentException Constructed exception.
-        */
-       public static void illegalArg(String msg, Object...args) throws 
IllegalArgumentException {
-               throw new BasicIllegalArgumentException(msg, args);
-       }
-
-       /**
         * Same as {@link Throwable#getCause()} but searches the throwable 
chain for an exception of the specified type.
         *
         * @param c The throwable type to search for.
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
index 8afd5b3..c7a54ef 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
@@ -14,6 +14,7 @@ package org.apache.juneau.reflect;
 
 import static org.apache.juneau.internal.StringUtils.*;
 import static org.apache.juneau.reflect.ReflectFlags.*;
+import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.internal.ExceptionUtils.*;
 import static org.apache.juneau.internal.ObjectUtils.*;
 
@@ -2406,9 +2407,9 @@ public final class ClassInfo {
         * @param pt The parameterized type class containing the parameterized 
type to resolve (e.g. <c>HashMap</c>).
         * @return The resolved real class.
         */
+       @SuppressWarnings("null")
        public Class<?> getParameterType(int index, Class<?> pt) {
-               if (pt == null)
-                       throw new BasicIllegalArgumentException("Parameterized 
type cannot be null");
+               assertArgNotNull("pt", pt);
 
                // We need to make up a mapping of type names.
                Map<Type,Type> typeMap = new HashMap<>();
@@ -2416,19 +2417,16 @@ public final class ClassInfo {
                while (pt != cc.getSuperclass()) {
                        extractTypes(typeMap, cc);
                        cc = cc.getSuperclass();
-                       if (cc == null)
-                               throw new BasicIllegalArgumentException("Class 
''{0}'' is not a subclass of parameterized type ''{1}''", c.getSimpleName(), 
pt.getSimpleName());
+                       assertArg(cc != null, "Class ''{0}'' is not a subclass 
of parameterized type ''{1}''", c.getSimpleName(), pt.getSimpleName());
                }
 
                Type gsc = cc.getGenericSuperclass();
 
-               if (! (gsc instanceof ParameterizedType))
-                       throw new BasicIllegalArgumentException("Class ''{0}'' 
is not a parameterized type", pt.getSimpleName());
+               assertArg(gsc instanceof ParameterizedType, "Class ''{0}'' is 
not a parameterized type", pt.getSimpleName());
 
                ParameterizedType cpt = (ParameterizedType)gsc;
                Type[] atArgs = cpt.getActualTypeArguments();
-               if (index >= atArgs.length)
-                       throw new BasicIllegalArgumentException("Invalid type 
index. index={0}, argsLength={1}", index, atArgs.length);
+               assertArg(index < atArgs.length, "Invalid type index. 
index={0}, argsLength={1}", index, atArgs.length);
                Type actualType = cpt.getActualTypeArguments()[index];
 
                if (typeMap.containsKey(actualType))
@@ -2464,7 +2462,7 @@ public final class ClassInfo {
                } else if (actualType instanceof ParameterizedType) {
                        return 
(Class<?>)((ParameterizedType)actualType).getRawType();
                }
-               throw new BasicIllegalArgumentException("Could not resolve 
variable ''{0}'' to a type.", actualType.getTypeName());
+               throw illegalArgumentException("Could not resolve variable 
''{0}'' to a type.", actualType.getTypeName());
        }
 
        private static boolean isInnerClass(GenericDeclaration od, 
GenericDeclaration id) {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/MapVar.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/MapVar.java
index ea863e7..26a938d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/MapVar.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/MapVar.java
@@ -12,9 +12,8 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.svl;
 
+import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.internal.StringUtils.*;
-import static org.apache.juneau.internal.ThrowableUtils.*;
-
 import java.util.*;
 
 /**
@@ -37,8 +36,7 @@ public abstract class MapVar extends DefaultingVar {
         */
        public MapVar(String name, Map m) {
                super(name);
-               if (m == null)
-                       illegalArg("''m'' parameter cannot be null.");
+               assertArgNotNull("m", m);
                this.m = m;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/Var.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/Var.java
index a6d7c7f..3c08ab4 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/Var.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/Var.java
@@ -12,8 +12,8 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.svl;
 
-import static org.apache.juneau.internal.ThrowableUtils.*;
-
+import static org.apache.juneau.assertions.Assertions.*;
+import static org.apache.juneau.internal.ExceptionUtils.*;
 import java.io.*;
 
 /**
@@ -61,16 +61,15 @@ public abstract class Var {
         *      If <jk>false</jk>, then the {@link #resolve(VarResolverSession, 
String)} method is implemented.
         */
        public Var(String name, boolean streamed) {
+               assertArgNotNull("name", name);
                this.name = name;
                this.streamed = streamed;
 
-               if (name == null)
-                       illegalArg("Invalid var name.  Must consist of only 
uppercase and lowercase ASCII letters.");
-               else for (int i = 0; i < name.length(); i++) {
-               // Need to make sure only ASCII characters are used.
+               for (int i = 0; i < name.length(); i++) {
+                       // Need to make sure only ASCII characters are used.
                        char c = name.charAt(i);
                        if (c < 'A' || c > 'z' || (c > 'Z' && c < 'a'))
-                               illegalArg("Invalid var name.  Must consist of 
only uppercase and lowercase ASCII letters.");
+                               throw illegalArgumentException("Invalid var 
name.  Must consist of only uppercase and lowercase ASCII letters.");
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/IfVar.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/IfVar.java
index 8c11966..b993d80 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/IfVar.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/IfVar.java
@@ -12,8 +12,7 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.svl.vars;
 
-import static org.apache.juneau.internal.ThrowableUtils.*;
-
+import static org.apache.juneau.assertions.Assertions.*;
 import org.apache.juneau.svl.*;
 
 /**
@@ -63,8 +62,7 @@ public class IfVar extends MultipartVar {
 
        @Override /* MultipartVar */
        public String resolve(VarResolverSession session, String[] args) {
-               if (args.length < 2 || args.length > 3)
-                       illegalArg("Invalid number of arguments passed to $IF 
var.  Must be either $IF{booleanArg,thenValue} or 
$IF{booleanArg,thenValue,elseValue}");
+               assertArg(args.length >= 2 && args.length <= 3, "Invalid number 
of arguments passed to $IF var.  Must be either $IF{booleanArg,thenValue} or 
$IF{booleanArg,thenValue,elseValue}");
 
                String b = args[0].toLowerCase();
                if ("1".equals(b) || "t".equals(b) || "true".equals(b))
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/LenVar.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/LenVar.java
index 42d3757..23bb87b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/LenVar.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/LenVar.java
@@ -12,8 +12,7 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.svl.vars;
 
-import static org.apache.juneau.internal.ThrowableUtils.*;
-
+import static org.apache.juneau.assertions.Assertions.*;
 import java.util.regex.*;
 
 import org.apache.juneau.svl.*;
@@ -59,8 +58,7 @@ public class LenVar extends MultipartVar {
 
        @Override /* MultipartVar */
        public String resolve(VarResolverSession session, String[] args) {
-               if (args.length > 2)
-                       illegalArg("Invalid number of arguments passed to $LN 
var.  Must have 1 or 2 arguments.");
+               assertArg(args.length <= 2, "Invalid number of arguments passed 
to $LN var.  Must have 1 or 2 arguments.");
 
                int len = 0;
                String stringArg = args[0];
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/PatternExtractVar.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/PatternExtractVar.java
index a57253d..7ff703a 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/PatternExtractVar.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/PatternExtractVar.java
@@ -12,8 +12,7 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.svl.vars;
 
-import static org.apache.juneau.internal.ThrowableUtils.*;
-
+import static org.apache.juneau.assertions.Assertions.*;
 import java.util.regex.*;
 
 import org.apache.juneau.svl.*;
@@ -62,8 +61,7 @@ public class PatternExtractVar extends MultipartVar {
 
        @Override /* MultipartVar */
        public String resolve(VarResolverSession session, String[] args) {
-               if (args.length < 3)
-                       illegalArg("Invalid number of arguments passed to $PE 
var.  Must have 3 arguments.");
+               assertArg(args.length == 3, "Invalid number of arguments passed 
to $PE var.  Must have 3 arguments.");
 
                String stringArg = args[0];
                String pattern = args[1];
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/PatternMatchVar.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/PatternMatchVar.java
index 9ea8f87..94c8c63 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/PatternMatchVar.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/PatternMatchVar.java
@@ -12,8 +12,7 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.svl.vars;
 
-import static org.apache.juneau.internal.ThrowableUtils.*;
-
+import static org.apache.juneau.assertions.Assertions.*;
 import java.util.regex.*;
 
 import org.apache.juneau.svl.*;
@@ -63,8 +62,7 @@ public class PatternMatchVar extends MultipartVar {
 
        @Override /* MultipartVar */
        public String resolve(VarResolverSession session, String[] args) {
-               if (args.length < 2)
-                       illegalArg("Invalid number of arguments passed to $PM 
var.  Must have 2 or more arguments.");
+               assertArg(args.length >= 2, "Invalid number of arguments passed 
to $PM var.  Must have 2 or more arguments.");
 
                String stringArg = args[0];
                String pattern = args[1];
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/PatternReplaceVar.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/PatternReplaceVar.java
index ad26f0e..2c5e6c6 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/PatternReplaceVar.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/PatternReplaceVar.java
@@ -12,8 +12,7 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.svl.vars;
 
-import static org.apache.juneau.internal.ThrowableUtils.*;
-
+import static org.apache.juneau.assertions.Assertions.*;
 import org.apache.juneau.svl.*;
 
 /**
@@ -62,8 +61,7 @@ public class PatternReplaceVar extends MultipartVar {
 
        @Override /* MultipartVar */
        public String resolve(VarResolverSession session, String[] args) {
-               if (args.length < 3)
-                       illegalArg("Invalid number of arguments passed to $PR 
var.  Must have 3 or more arguments.");
+               assertArg(args.length >= 3, "Invalid number of arguments passed 
to $PR var.  Must have 3 or more arguments.");
 
                String stringArg = args[0];
                String pattern = args[1];
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/SubstringVar.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/SubstringVar.java
index c713d9a..537d728 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/SubstringVar.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/SubstringVar.java
@@ -12,8 +12,7 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.svl.vars;
 
-import static org.apache.juneau.internal.ThrowableUtils.*;
-
+import static org.apache.juneau.assertions.Assertions.*;
 import org.apache.juneau.svl.*;
 
 /**
@@ -60,9 +59,7 @@ public class SubstringVar extends MultipartVar {
 
        @Override /* MultipartVar */
        public String resolve(VarResolverSession session, String[] args) {
-               if (args.length > 3)
-                       illegalArg("Invalid number of arguments passed to $ST 
var.  Must have 1 or 2 arguments.");
-
+               assertArg(args.length >= 2 && args.length <= 3, "Invalid number 
of arguments passed to $ST var.  Must have 2 or 3 arguments.");
 
                String stringArg = args[0];
                String result = "";
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/SwitchVar.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/SwitchVar.java
index 98751fe..ec609e0 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/SwitchVar.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/vars/SwitchVar.java
@@ -12,8 +12,7 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.svl.vars;
 
-import static org.apache.juneau.internal.ThrowableUtils.*;
-
+import static org.apache.juneau.assertions.Assertions.*;
 import java.util.regex.*;
 
 import org.apache.juneau.internal.*;
@@ -64,16 +63,14 @@ public class SwitchVar extends MultipartVar {
 
        @Override /* MultipartVar */
        public String resolve(VarResolverSession session, String[] args) {
-               if (args.length < 2)
-                       illegalArg("Invalid number of arguments passed to $SW 
var.  Must have 2 or more arguments.");
+               assertArg(args.length >= 2, "Invalid number of arguments passed 
to $SW var.  Must have 2 or more arguments.");
 
                String stringArg = args[0];
                for (int i = 1; i < args.length; i++) {
                        String pattern = args[i];
 
                        String[] parts = StringUtils.split(pattern, ':', 2);
-                       if (parts.length < 2)
-                               illegalArg("Invalid arguments passed to $SW 
var.  Each case statement must contains 'pattern:value'.");
+                       assertArg(parts.length >= 2, "Invalid arguments passed 
to $SW var.  Each case statement must contains 'pattern:value'.");
 
                        Pattern p = Pattern.compile(parts[0].replace("*", 
".*").replace("?", "."));
                        if (p.matcher(stringArg).matches())
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/http/EntityTag_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/http/EntityTag_Test.java
index 1f4f4aa..50f7bdf 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/EntityTag_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/EntityTag_Test.java
@@ -73,7 +73,7 @@ public class EntityTag_Test {
                assertThrown(()->new EntityTag("foo")).is("Invalid value for 
entity-tag: [foo]");
                assertThrown(()->new EntityTag("\"")).is("Invalid value for 
entity-tag: [\"]");
                assertThrown(()->new EntityTag("")).is("Invalid value for 
entity-tag: []");
-               assertThrown(()->new EntityTag(null)).is("Invalid value for 
entity-tag: [null]");
+               assertThrown(()->new EntityTag(null)).is("Argument 'value' 
cannot be null");
                assertThrown(()->new EntityTag("\"a")).is("Invalid value for 
entity-tag: [\"a]");
                assertThrown(()->new EntityTag("a\"")).is("Invalid value for 
entity-tag: [a\"]");
                assertThrown(()->new EntityTag("W/\"")).is("Invalid value for 
entity-tag: [W/\"]");
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/reflection/ClassInfoTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/reflection/ClassInfoTest.java
index ad6dbf1..8efcf30 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/reflection/ClassInfoTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/reflection/ClassInfoTest.java
@@ -2134,7 +2134,7 @@ public class ClassInfoTest {
 
        @Test
        public void getParameterType_nullParameterizedType() {
-               assertThrown(()->aClass.getParameterType(2, 
null)).is("Parameterized type cannot be null");
+               assertThrown(()->aClass.getParameterType(2, null)).is("Argument 
'pt' cannot be null");
        }
 
        @Test

Reply via email to