Clean up ExceptionUtils.
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 @@
/**
* 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 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 @@
* 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 @@
* @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 @@
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 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 @@
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.function.*;
import org.apache.http.*;
-import org.apache.juneau.*;
import org.apache.juneau.assertions.*;
/**
@@ -136,7 +136,7 @@
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.function.*;
import org.apache.http.*;
-import org.apache.juneau.*;
import org.apache.juneau.assertions.*;
/**
@@ -130,7 +130,7 @@
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 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 @@
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 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 @@
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 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 @@
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 @@
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 @@
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 @@
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 @@
* @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 @@
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 @@
} 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 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 @@
* 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 @@
@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 @@
@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 @@
@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 @@
@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 @@
@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 @@
@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 @@
@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 @@
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 @@
@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