/*
 * Copyright 2008 the original author or authors.
 *
 * Licensed 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.rioproject.admin;

import java.io.PrintStream;
import java.io.PrintWriter;

/**
 * Thrown when a Service Bean cannot be controlled
 *
 * @author Dennis Reedy
 */
public class ServiceBeanControlException extends Exception {
    /**
     * serialVersionUID
     */
    static final long serialVersionUID = 2L;

    /**
     * Constructs a <code>ServiceBeanControlException</code> with no detail message.
     */
    public ServiceBeanControlException() {
        super();
    }

    /**
     * Constructs a <code>ServiceBeanControlException</code> with the specified detail
     * message
     * 
     * @param s the detail message.
     */
    public ServiceBeanControlException(String s) {
        super(s);
    }

    /**
     * Constructs a <code>ServiceBeanControlException</code> with the specified detail
     * message and optional exception that was raised while controlling the service
     * 
     * @param s The detail message
     * @param cause The exception that was raised while controlling the JSB
     */
    public ServiceBeanControlException(String s, Throwable cause) {
        super(s, cause);
    }

    /**
     * Prints the stack trace. If an exception occurred during JSB
     * instantiation it prints that exception's stack trace, or else prints the
     * stack trace of this exception.
     * 
     * @see java.lang.System#err
     */
    public void printStackTrace() {
        printStackTrace(System.err);
    }

    /**
     * Prints the stack trace to the specified print stream. If an exception
     * occurred during service instantiation it prints that exception's stack trace,
     * or else prints the stack trace of this exception.
     */
    public void printStackTrace(PrintStream ps) {
        Throwable cause = getCause();
        if(cause != null) {
            ps.print("org.rioproject.admin.ServiceBeanControlException: ");
            cause.printStackTrace(ps);
        } else {
            super.printStackTrace(ps);
        }
    }

    /**
     * Prints the stack backtrace to the specified print writer. If an exception
     * occurred during class loading it prints that exception's stack trace, or
     * else prints the stack backtrace of this exception.
     */
    public void printStackTrace(PrintWriter pw) {
        synchronized(pw) {
            Throwable cause = getCause();
            if(cause != null) {
                pw.print("org.rioproject.admin.ServiceBeanControlException: ");
                cause.printStackTrace(pw);
            } else {
                super.printStackTrace(pw);
            }
        }
    }
}

@@ -644,65 +644,8 @@
 n;%0A%0A
-import java.io.PrintStream;%0Aimport java.io.PrintWriter;%0A%0A
 /**%0A
@@ -831,16 +831,24 @@
  */%0A    
+private 
 static f
@@ -885,176 +885,8 @@
 L;%0A%0A
-    /**%0A     * Constructs a %3Ccode%3EServiceBeanControlException%3C/code%3E with no detail message.%0A     */%0A    public ServiceBeanControlException() %7B%0A        super();%0A    %7D%0A%0A
     
@@ -1489,24 +1489,24 @@
 le cause) %7B%0A
+
         supe
@@ -1527,1472 +1527,7 @@
    %7D
-%0A%0A    /**%0A     * Prints the stack trace. If an exception occurred during JSB%0A     * instantiation it prints that exception's stack trace, or else prints the%0A     * stack trace of this exception.%0A     * %0A     * @see java.lang.System#err%0A     */%0A    public void printStackTrace() %7B%0A        printStackTrace(System.err);%0A    %7D%0A%0A    /**%0A     * Prints the stack trace to the specified print stream. If an exception%0A     * occurred during service instantiation it prints that exception's stack trace,%0A     * or else prints the stack trace of this exception.%0A     */%0A    public void printStackTrace(PrintStream ps) %7B%0A        Throwable cause = getCause();%0A        if(cause != null) %7B%0A            ps.print(%22org.rioproject.admin.ServiceBeanControlException: %22);%0A            cause.printStackTrace(ps);%0A        %7D else %7B%0A            super.printStackTrace(ps);%0A        %7D%0A    %7D%0A%0A    /**%0A     * Prints the stack backtrace to the specified print writer. If an exception%0A     * occurred during class loading it prints that exception's stack trace, or%0A     * else prints the stack backtrace of this exception.%0A     */%0A    public void printStackTrace(PrintWriter pw) %7B%0A        synchronized(pw) %7B%0A            Throwable cause = getCause();%0A            if(cause != null) %7B%0A                pw.print(%22org.rioproject.admin.ServiceBeanControlException: %22);%0A                cause.printStackTrace(pw);%0A            %7D else %7B%0A                super.printStackTrace(pw);%0A            %7D%0A        %7D%0A    %7D
 %0A%7D%0A

Reduce complexity