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;
       }
   }