Clover coverage report - Maven Clover report
Coverage timestamp: Sun Aug 20 2006 04:03:57 PDT
file stats: LOC: 205   Methods: 7
NCLOC: 42   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
UnavailableException.java 0% 0% 0% 0%
coverage
 1    /*
 2    * Copyright 2004 The Apache Software Foundation
 3    *
 4    * Licensed under the Apache License, Version 2.0 (the "License");
 5    * you may not use this file except in compliance with the License.
 6    * You may obtain a copy of the License at
 7    *
 8    * http://www.apache.org/licenses/LICENSE-2.0
 9    *
 10    * Unless required by applicable law or agreed to in writing, software
 11    * distributed under the License is distributed on an "AS IS" BASIS,
 12    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13    * See the License for the specific language governing permissions and
 14    * limitations under the License.
 15    */
 16   
 17    package javax.servlet;
 18   
 19   
 20    /**
 21    * Defines an exception that a servlet or filter throws to indicate
 22    * that it is permanently or temporarily unavailable.
 23    *
 24    * <p>When a servlet or filter is permanently unavailable, something is wrong
 25    * with it, and it cannot handle
 26    * requests until some action is taken. For example, a servlet
 27    * might be configured incorrectly, or a filter's state may be corrupted.
 28    * The component should log both the error and the corrective action
 29    * that is needed.
 30    *
 31    * <p>A servlet or filter is temporarily unavailable if it cannot handle
 32    * requests momentarily due to some system-wide problem. For example,
 33    * a third-tier server might not be accessible, or there may be
 34    * insufficient memory or disk storage to handle requests. A system
 35    * administrator may need to take corrective action.
 36    *
 37    * <p>Servlet containers can safely treat both types of unavailable
 38    * exceptions in the same way. However, treating temporary unavailability
 39    * effectively makes the servlet container more robust. Specifically,
 40    * the servlet container might block requests to the servlet or filter for a period
 41    * of time suggested by the exception, rather than rejecting them until
 42    * the servlet container restarts.
 43    *
 44    *
 45    * @author Various
 46    * @version $Version$
 47    *
 48    */
 49   
 50    public class UnavailableException
 51    extends ServletException {
 52   
 53    private Servlet servlet; // what's unavailable
 54    private boolean permanent; // needs admin action?
 55    private int seconds; // unavailability estimate
 56   
 57    /**
 58    *
 59    * @deprecated As of Java Servlet API 2.2, use {@link
 60    * #UnavailableException(String)} instead.
 61    *
 62    * @param servlet the <code>Servlet</code> instance that is
 63    * unavailable
 64    *
 65    * @param msg a <code>String</code> specifying the
 66    * descriptive message
 67    *
 68    */
 69   
 70  0 public UnavailableException(Servlet servlet, String msg) {
 71  0 super(msg);
 72  0 this.servlet = servlet;
 73  0 permanent = true;
 74    }
 75   
 76    /**
 77    * @deprecated As of Java Servlet API 2.2, use {@link
 78    * #UnavailableException(String, int)} instead.
 79    *
 80    * @param seconds an integer specifying the number of seconds
 81    * the servlet expects to be unavailable; if
 82    * zero or negative, indicates that the servlet
 83    * can't make an estimate
 84    *
 85    * @param servlet the <code>Servlet</code> that is unavailable
 86    *
 87    * @param msg a <code>String</code> specifying the descriptive
 88    * message, which can be written to a log file or
 89    * displayed for the user.
 90    *
 91    */
 92   
 93  0 public UnavailableException(int seconds, Servlet servlet, String msg) {
 94  0 super(msg);
 95  0 this.servlet = servlet;
 96  0 if (seconds <= 0)
 97  0 this.seconds = -1;
 98    else
 99  0 this.seconds = seconds;
 100  0 permanent = false;
 101    }
 102   
 103    /**
 104    *
 105    * Constructs a new exception with a descriptive
 106    * message indicating that the servlet is permanently
 107    * unavailable.
 108    *
 109    * @param msg a <code>String</code> specifying the
 110    * descriptive message
 111    *
 112    */
 113   
 114  0 public UnavailableException(String msg) {
 115  0 super(msg);
 116   
 117  0 permanent = true;
 118    }
 119   
 120    /**
 121    * Constructs a new exception with a descriptive message
 122    * indicating that the servlet is temporarily unavailable
 123    * and giving an estimate of how long it will be unavailable.
 124    *
 125    * <p>In some cases, the servlet cannot make an estimate. For
 126    * example, the servlet might know that a server it needs is
 127    * not running, but not be able to report how long it will take
 128    * to be restored to functionality. This can be indicated with
 129    * a negative or zero value for the <code>seconds</code> argument.
 130    *
 131    * @param msg a <code>String</code> specifying the
 132    * descriptive message, which can be written
 133    * to a log file or displayed for the user.
 134    *
 135    * @param seconds an integer specifying the number of seconds
 136    * the servlet expects to be unavailable; if
 137    * zero or negative, indicates that the servlet
 138    * can't make an estimate
 139    *
 140    */
 141   
 142  0 public UnavailableException(String msg, int seconds) {
 143  0 super(msg);
 144   
 145  0 if (seconds <= 0)
 146  0 this.seconds = -1;
 147    else
 148  0 this.seconds = seconds;
 149   
 150  0 permanent = false;
 151    }
 152   
 153    /**
 154    *
 155    * Returns a <code>boolean</code> indicating
 156    * whether the servlet is permanently unavailable.
 157    * If so, something is wrong with the servlet, and the
 158    * system administrator must take some corrective action.
 159    *
 160    * @return <code>true</code> if the servlet is
 161    * permanently unavailable; <code>false</code>
 162    * if the servlet is available or temporarily
 163    * unavailable
 164    *
 165    */
 166   
 167  0 public boolean isPermanent() {
 168  0 return permanent;
 169    }
 170   
 171    /**
 172    * @deprecated As of Java Servlet API 2.2, with no replacement.
 173    *
 174    * Returns the servlet that is reporting its unavailability.
 175    *
 176    * @return the <code>Servlet</code> object that is
 177    * throwing the <code>UnavailableException</code>
 178    *
 179    */
 180   
 181  0 public Servlet getServlet() {
 182  0 return servlet;
 183    }
 184   
 185    /**
 186    * Returns the number of seconds the servlet expects to
 187    * be temporarily unavailable.
 188    *
 189    * <p>If this method returns a negative number, the servlet
 190    * is permanently unavailable or cannot provide an estimate of
 191    * how long it will be unavailable. No effort is
 192    * made to correct for the time elapsed since the exception was
 193    * first reported.
 194    *
 195    * @return an integer specifying the number of seconds
 196    * the servlet will be temporarily unavailable,
 197    * or a negative number if the servlet is permanently
 198    * unavailable or cannot make an estimate
 199    *
 200    */
 201   
 202  0 public int getUnavailableSeconds() {
 203  0 return permanent ? -1 : seconds;
 204    }
 205    }