You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2022/09/04 14:05:33 UTC

[juneau] branch master updated: Simplify BasicRuntimeException

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 b26d128e7 Simplify BasicRuntimeException
b26d128e7 is described below

commit b26d128e721ea504d2c7416666aaf9439774a0de
Author: JamesBognar <ja...@salesforce.com>
AuthorDate: Sun Sep 4 10:04:58 2022 -0400

    Simplify BasicRuntimeException
---
 .../java/org/apache/juneau/dto/openapi3/Items.java |  4 +--
 .../juneau/dto/openapi3/SecuritySchemeInfo.java    |  8 +++---
 .../org/apache/juneau/BasicRuntimeException.java   | 30 +++++++++++++++++++---
 .../apache/juneau/rest/client/ResponseHeader.java  |  2 +-
 .../java/org/apache/juneau/cp/BeanStore_Test.java  | 10 ++++----
 5 files changed, 38 insertions(+), 16 deletions(-)

diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/openapi3/Items.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/openapi3/Items.java
index ecf53e24c..58bf5b717 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/openapi3/Items.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/openapi3/Items.java
@@ -260,10 +260,10 @@ public class Items extends OpenApiElement {
 	 */
 	public Items setCollectionFormat(String value) {
 		if (isStrict() && ! contains(value, VALID_COLLECTION_FORMATS))
-			throw BasicRuntimeException.create().message(
+			throw new BasicRuntimeException(
 				"Invalid value passed in to setCollectionFormat(String).  Value=''{0}'', valid values={1}",
 				value, VALID_COLLECTION_FORMATS
-			).build();
+			);
 		collectionFormat = value;
 		return this;
 	}
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/openapi3/SecuritySchemeInfo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/openapi3/SecuritySchemeInfo.java
index 47539f1f8..80447f41d 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/openapi3/SecuritySchemeInfo.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/openapi3/SecuritySchemeInfo.java
@@ -227,10 +227,10 @@ public class SecuritySchemeInfo extends OpenApiElement {
 	 */
 	public SecuritySchemeInfo setIn(String value) {
 		if (isStrict() && ! contains(value, VALID_IN))
-			throw BasicRuntimeException.create().message(
+			throw new BasicRuntimeException(
 				"Invalid value passed in to setIn(String).  Value=''{0}'', valid values={1}",
 				value, VALID_IN
-			).build();
+			);
 		in = value;
 		return this;
 	}
@@ -329,10 +329,10 @@ public class SecuritySchemeInfo extends OpenApiElement {
 	 */
 	public SecuritySchemeInfo setType(String value) {
 		if (isStrict() && ! contains(value, VALID_TYPES))
-			throw BasicRuntimeException.create().message(
+			throw new BasicRuntimeException(
 				"Invalid value passed in to setType(String).  Value=''{0}'', valid values={1}",
 				value, VALID_TYPES
-			).build();
+			);
 		type = value;
 		return this;
 	}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicRuntimeException.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicRuntimeException.java
index 731fffce9..8aeb6a087 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicRuntimeException.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicRuntimeException.java
@@ -129,7 +129,8 @@ public class BasicRuntimeException extends RuntimeException {
 	// Instance
 	//-----------------------------------------------------------------------------------------------------------------
 
-	final boolean unmodifiable;
+	boolean unmodifiable;
+	String message;
 
 	/**
 	 * Constructor.
@@ -149,7 +150,7 @@ public class BasicRuntimeException extends RuntimeException {
 	 * @param args Optional {@link MessageFormat}-style arguments.
 	 */
 	public BasicRuntimeException(Throwable cause, String message, Object...args) {
-		this(create().causedBy(cause).message(message, args));
+		super(format(message, args), cause);
 	}
 
 	/**
@@ -159,7 +160,7 @@ public class BasicRuntimeException extends RuntimeException {
 	 * @param args Optional {@link MessageFormat}-style arguments.
 	 */
 	public BasicRuntimeException(String message, Object...args) {
-		this(create().message(message, args));
+		super(format(message, args));
 	}
 
 	/**
@@ -168,7 +169,7 @@ public class BasicRuntimeException extends RuntimeException {
 	 * @param cause The cause of this exception.
 	 */
 	public BasicRuntimeException(Throwable cause) {
-		this(create().causedBy(cause));
+		super(cause);
 	}
 
 	/**
@@ -182,6 +183,19 @@ public class BasicRuntimeException extends RuntimeException {
 		return ThrowableUtils.getCause(c, this);
 	}
 
+	/**
+	 * Sets the detail message on this exception.
+	 *
+	 * @param message The message.
+	 * @param args The message args.
+	 * @return This object.
+	 */
+	public BasicRuntimeException setMessage(String message, Object...args) {
+		assertModifiable();
+		this.message = format(message, args);
+		return this;
+	}
+
 	@Override /* Throwable */
 	public String getMessage() {
 		String m = super.getMessage();
@@ -218,6 +232,14 @@ public class BasicRuntimeException extends RuntimeException {
 		return t == null ? this : t;
 	}
 
+	/**
+	 * Set the unmodifiable flag on this exception.  This prevents the message from being up
+	 *
+	 */
+	protected void setUnmodifiable() {
+		unmodifiable = true;
+	}
+
 	/**
 	 * Throws an {@link UnsupportedOperationException} if the unmodifiable flag is set on this bean.
 	 */
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
index b51ee5ca5..39388890b 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
@@ -365,7 +365,7 @@ public class ResponseHeader extends BasicHeader {
 		try {
 			return optional(parser.parse(HEADER, schema, getValue(), type));
 		} catch (ParseException e) {
-			throw BasicRuntimeException.create().causedBy(e).message("Could not parse response header {0}.", getName()).build();
+			throw new BasicRuntimeException(e, "Could not parse response header {0}.", getName());
 		}
 	}
 
diff --git a/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java b/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java
index 4169d8fc8..db8bca8c5 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java
@@ -536,9 +536,9 @@ public class BeanStore_Test {
 		assertObject(b1c.createMethodFinder(C.class, C1.class).find("createA1").run()).isNull();
 		assertObject(b2c.createMethodFinder(C.class).find("createA1").run()).isNotNull();
 		assertObject(b3c.createMethodFinder(C.class).find("createA1").run()).isNull();
-		assertThrown(()->b1c.createMethodFinder(C.class, x).find("createA7").run()).asMessage().is("foo");
+		assertThrown(()->b1c.createMethodFinder(C.class, x).find("createA7").run()).asMessage().isContains("foo");
 		assertObject(b1c.createMethodFinder(C.class, C1.class).find("createA7").run()).isNull();
-		assertThrown(()->b2c.createMethodFinder(C.class).find("createA7").run()).asMessage().is("foo");
+		assertThrown(()->b2c.createMethodFinder(C.class).find("createA7").run()).asMessage().isContains("foo");
 		assertObject(b3c.createMethodFinder(C.class).find("createA7").run()).isNull();
 	}
 
@@ -576,9 +576,9 @@ public class BeanStore_Test {
 		assertObject(b1c.createMethodFinder(C.class, C2.class).find("createB1").run()).isNotNull();
 		assertObject(b2c.createMethodFinder(C.class).find("createB1").run()).isNotNull();
 		assertObject(b3c.createMethodFinder(C.class).find("createB1").run()).isNull();
-		assertThrown(()->b1c.createMethodFinder(C.class, x).find("createB7").run()).asMessage().is("foo");
-		assertThrown(()->b1c.createMethodFinder(C.class, C2.class).find("createB7").run()).asMessage().is("foo");
-		assertThrown(()->b2c.createMethodFinder(C.class).find("createB7").run()).asMessage().is("foo");
+		assertThrown(()->b1c.createMethodFinder(C.class, x).find("createB7").run()).asMessage().isContains("foo");
+		assertThrown(()->b1c.createMethodFinder(C.class, C2.class).find("createB7").run()).asMessage().isContains("foo");
+		assertThrown(()->b2c.createMethodFinder(C.class).find("createB7").run()).asMessage().isContains("foo");
 		assertObject(b3c.createMethodFinder(C.class).find("createB7").run()).isNull();
 	}