1 /**
2 *
3 * Copyright 2003-2004 The Apache Software Foundation
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18 package org.apache.geronimo.common;
19
20
21 /**
22 * @version $Rev: 356022 $ $Date: 2005-12-11 12:58:34 -0800 (Sun, 11 Dec 2005) $
23 */
24 public class DeploymentException extends Exception {
25
26 public DeploymentException() {
27 }
28
29 public DeploymentException(Throwable cause) {
30 super(cause);
31 }
32
33 public DeploymentException(String message) {
34 super(message);
35 }
36
37 public DeploymentException(String message, Throwable cause) {
38 super(message, cause);
39 }
40
41 public DeploymentException cleanse() {
42 if(null != getCause()) {
43 Throwable root = this;
44 CleanseException previousEx = null;
45 CleanseException rootEx = null;
46 while (null != root) {
47 Throwable e = root.getCause();
48 CleanseException exception = new CleanseException(root.getMessage(), root.toString());
49 if (null == rootEx) {
50 rootEx = exception;
51 }
52 exception.setStackTrace(root.getStackTrace());
53 if (null != previousEx) {
54 previousEx.initCause(exception);
55 }
56 previousEx = exception;
57 root = e;
58 }
59 return rootEx;
60 }
61
62 return this;
63 }
64
65 private static class CleanseException extends DeploymentException {
66 private final String toString;
67
68 public CleanseException(String message, String toString) {
69 super(message);
70 this.toString = toString;
71 }
72
73 public String toString() {
74 return toString;
75 }
76 }
77 }