01: /*
02: * @(#)RetryException.java 0.3-2 18/06/1999
03: *
04: * This file is part of the HTTPClient package
05: * Copyright (C) 1996-1999 Ronald Tschalär
06: *
07: * This library is free software; you can redistribute it and/or
08: * modify it under the terms of the GNU Lesser General Public
09: * License as published by the Free Software Foundation; either
10: * version 2 of the License, or (at your option) any later version.
11: *
12: * This library is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15: * Lesser General Public License for more details.
16: *
17: * You should have received a copy of the GNU Lesser General Public
18: * License along with this library; if not, write to the Free
19: * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20: * MA 02111-1307, USA
21: *
22: * For questions, suggestions, bug-reports, enhancement-requests etc.
23: * I may be contacted at:
24: *
25: * ronald@innovation.ch
26: *
27: */
28:
29: package HTTPClient;
30:
31: import java.io.IOException;
32:
33: /**
34: * Signals that an exception was thrown and caught, and the request was
35: * retried.
36: *
37: * @version 0.3-2 18/06/1999
38: * @author Ronald Tschalär
39: */
40:
41: class RetryException extends IOException {
42: /** the request to retry */
43: Request request = null;
44:
45: /** the response associated with the above request */
46: Response response = null;
47:
48: /** the start of the liked list */
49: RetryException first = null;
50:
51: /** the next exception in the list */
52: RetryException next = null;
53:
54: /** the original exception which caused the connection to be closed. */
55: IOException exception = null;
56:
57: /** was this exception generated because of an abnormal connection reset? */
58: boolean conn_reset = true;
59:
60: /** restart processing? */
61: boolean restart = false;
62:
63: /**
64: * Constructs an RetryException with no detail message.
65: * A detail message is a String that describes this particular exception.
66: */
67: public RetryException() {
68: super ();
69: }
70:
71: /**
72: * Constructs an RetryException class with the specified detail message.
73: * A detail message is a String that describes this particular exception.
74: *
75: * @param s the String containing a detail message
76: */
77: public RetryException(String s) {
78: super (s);
79: }
80:
81: // Methods
82:
83: /**
84: * Inserts this exception into the list.
85: *
86: * @param re the retry exception after which to add this one
87: */
88: void addToListAfter(RetryException re) {
89: if (re == null)
90: return;
91:
92: if (re.next != null)
93: this.next = re.next;
94: re.next = this;
95: }
96: }
|