1 /*
2 * @(#)RetryException.java 0.3-3 06/05/2001
3 *
4 * This file is part of the HTTPClient package
5 * Copyright (C) 1996-2001 Ronald Tschalär
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * 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 * The HTTPClient's home page is located at:
28 *
29 * http://www.innovation.ch/java/HTTPClient/
30 *
31 */
32
33 package HTTPClient;
34
35 import java.io.IOException;
36
37 /**
38 * Signals that an exception was thrown and caught, and the request was
39 * retried.
40 *
41 * @version 0.3-3 06/05/2001
42 * @author Ronald Tschalär
43 */
44 class RetryException extends IOException
45 {
46 /** the request to retry */
47 Request request = null;
48
49 /** the response associated with the above request */
50 Response response = null;
51
52 /** the start of the liked list */
53 RetryException first = null;
54
55 /** the next exception in the list */
56 RetryException next = null;
57
58 /** the original exception which caused the connection to be closed. */
59 IOException exception = null;
60
61 /** was this exception generated because of an abnormal connection reset? */
62 boolean conn_reset = true;
63
64 /** restart processing? */
65 boolean restart = false;
66
67
68 /**
69 * Constructs an RetryException with no detail message.
70 * A detail message is a String that describes this particular exception.
71 */
72 public RetryException()
73 {
74 super();
75 }
76
77
78 /**
79 * Constructs an RetryException class with the specified detail message.
80 * A detail message is a String that describes this particular exception.
81 *
82 * @param s the String containing a detail message
83 */
84 public RetryException(String s)
85 {
86 super(s);
87 }
88
89
90 // Methods
91
92 /**
93 * Inserts this exception into the list.
94 *
95 * @param re the retry exception after which to add this one
96 */
97 void addToListAfter(RetryException re)
98 {
99 if (re == null) return;
100
101 if (re.next != null)
102 this.next = re.next;
103 re.next = this;
104 }
105 }