You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by st...@apache.org on 2003/01/03 08:38:12 UTC
cvs commit: xml-axis/java/src/org/apache/axis ConfigurationException.java
stevel 2003/01/02 23:38:12
Modified: java/src/org/apache/axis ConfigurationException.java
Log:
Retain the underlying exception *and* keep the stack trace slightly separate from the base message, with an overridden toString() method to bring the stack out with the message.
Reason: lets AxisFaults be pulled out at a higher level, and allows the caller to bypass the stack info, even if it is carried around server-side.
Revision Changes Path
1.12 +53 -14 xml-axis/java/src/org/apache/axis/ConfigurationException.java
Index: ConfigurationException.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/ConfigurationException.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- ConfigurationException.java 11 Dec 2002 22:38:06 -0000 1.11
+++ ConfigurationException.java 3 Jan 2003 07:38:12 -0000 1.12
@@ -70,7 +70,14 @@
public class ConfigurationException extends IOException {
/**
- * Copy the orginal execption by default
+ * any contained exception
+ */
+ private Exception containedException=null;
+
+ private String stackTrace="";
+
+ /**
+ * Copy the orginal exception by default
*/
protected static boolean copyStackByDefault= true;
@@ -83,21 +90,33 @@
* @param message String form of the error
*/
public ConfigurationException(String message) {
- this(new Exception(message));
+ super(message);
+ if(copyStackByDefault) {
+ stackTrace= JavaUtils.stackToString(this);
+ }
+ logException( this);
}
/**
* Construct a ConfigurationException from an Exception.
* @param exception original exception which was unexpected
*/
- public ConfigurationException(Exception e) {
- super(e.toString() + (copyStackByDefault? ("\n"
- + JavaUtils.stackToString(e)) : "" ));
+ public ConfigurationException(Exception exception) {
+ this(exception,copyStackByDefault);
+ }
- // Log the exception the first time it appears.
- if (!(e instanceof ConfigurationException)) {
- log.debug("Exception: ", e);
+ /**
+ * stringify, including stack trace.
+ * @return
+ */
+ public String toString() {
+ String stack;
+ if(stackTrace.length()== 0) {
+ stack = "";
+ } else {
+ stack="\n"+stackTrace;
}
+ return super.toString()+stack;
}
/**
@@ -105,13 +124,33 @@
* @param exception original exception which was unexpected
* @param copyStack set to true to copy the orginal exception's stack
*/
- public ConfigurationException(Exception e, final boolean copyStack) {
- super(e.toString() + (copyStack ? "\n"
- + JavaUtils.stackToString(e) : "" ));
-
+ public ConfigurationException(Exception exception, final boolean copyStack) {
+ super(exception.toString() + (copyStack ? "\n"
+ + JavaUtils.stackToString(exception) : "" ));
+ containedException = exception;
+ if(copyStack) {
+ stackTrace = JavaUtils.stackToString(this);
+ }
// Log the exception the first time it appears.
- if (!(e instanceof ConfigurationException)) {
- log.debug("Exception: ", e);
+ if (!(exception instanceof ConfigurationException)) {
+ logException(exception);
}
+ }
+
+ /**
+ * single point for logging exceptions.
+ * @param exception
+ */
+ private void logException(Exception exception) {
+ log.debug("Exception: ", exception);
+ }
+
+ /**
+ * get any contained exception
+ * @return base exception or null
+ * @since axis1.1
+ */
+ public Exception getContainedException() {
+ return containedException;
}
}