1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski package lib; 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski /** 27*b1cdbd2cSJim Jagielski * StatusException is used to pass a Status object from a test code which is 28*b1cdbd2cSJim Jagielski * terminated abnormaly. In many cases this is because of an exception thrown, 29*b1cdbd2cSJim Jagielski * but that can also be any other event that hinders the test execution. 30*b1cdbd2cSJim Jagielski */ 31*b1cdbd2cSJim Jagielski public class StatusException extends RuntimeException { 32*b1cdbd2cSJim Jagielski /** 33*b1cdbd2cSJim Jagielski * Contains an exception if the StatusException was created with 34*b1cdbd2cSJim Jagielski * StatusException(String, Throwable) constructor. 35*b1cdbd2cSJim Jagielski */ 36*b1cdbd2cSJim Jagielski protected Throwable exceptionThrown; 37*b1cdbd2cSJim Jagielski 38*b1cdbd2cSJim Jagielski /** 39*b1cdbd2cSJim Jagielski * The Status contained in the StatusException. 40*b1cdbd2cSJim Jagielski */ 41*b1cdbd2cSJim Jagielski protected Status status; 42*b1cdbd2cSJim Jagielski 43*b1cdbd2cSJim Jagielski /** 44*b1cdbd2cSJim Jagielski * Constructs a StatusException containing an exception Status. 45*b1cdbd2cSJim Jagielski * 46*b1cdbd2cSJim Jagielski * @param message the message of the StatusException 47*b1cdbd2cSJim Jagielski * @param t the exception of the exception Status 48*b1cdbd2cSJim Jagielski */ StatusException( String message, Throwable t )49*b1cdbd2cSJim Jagielski public StatusException( String message, Throwable t ) { 50*b1cdbd2cSJim Jagielski super( message ); 51*b1cdbd2cSJim Jagielski exceptionThrown = t; 52*b1cdbd2cSJim Jagielski status = Status.exception( t ); 53*b1cdbd2cSJim Jagielski } 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim Jagielski /** 56*b1cdbd2cSJim Jagielski * Creates a StatusException containing a Status. 57*b1cdbd2cSJim Jagielski */ StatusException( Status st )58*b1cdbd2cSJim Jagielski public StatusException( Status st ) { 59*b1cdbd2cSJim Jagielski super( st.getRunStateString() ); 60*b1cdbd2cSJim Jagielski status = st; 61*b1cdbd2cSJim Jagielski } 62*b1cdbd2cSJim Jagielski 63*b1cdbd2cSJim Jagielski /** 64*b1cdbd2cSJim Jagielski * @return an exception, if this represents an exception Status, 65*b1cdbd2cSJim Jagielski * <tt>false</tt> otherwise. 66*b1cdbd2cSJim Jagielski */ getThrownException()67*b1cdbd2cSJim Jagielski public Throwable getThrownException() { 68*b1cdbd2cSJim Jagielski return exceptionThrown; 69*b1cdbd2cSJim Jagielski } 70*b1cdbd2cSJim Jagielski 71*b1cdbd2cSJim Jagielski /** 72*b1cdbd2cSJim Jagielski * @return a status contained in the StatusException. 73*b1cdbd2cSJim Jagielski */ getStatus()74*b1cdbd2cSJim Jagielski public Status getStatus() { 75*b1cdbd2cSJim Jagielski return status; 76*b1cdbd2cSJim Jagielski } 77*b1cdbd2cSJim Jagielski }