|
@@ -147,11 +147,10 @@ public final class ErrorManager implements Serializable {
|
147
|
147
|
*
|
148
|
148
|
* @param error error to be sent
|
149
|
149
|
*/
|
150
|
|
- @SuppressWarnings("PMD.SystemPrintln")
|
151
|
150
|
public static void sendError(final ProgramError error) {
|
152
|
151
|
new Timer("ErrorManager Timer").schedule(new TimerTask() {
|
153
|
152
|
public void run() {
|
154
|
|
- sendErrorInternal(error);
|
|
153
|
+ getErrorManager().sendErrorInternal(error);
|
155
|
154
|
}
|
156
|
155
|
}, 0);
|
157
|
156
|
}
|
|
@@ -161,8 +160,7 @@ public final class ErrorManager implements Serializable {
|
161
|
160
|
*
|
162
|
161
|
* @param error ProgramError to be sent
|
163
|
162
|
*/
|
164
|
|
- @SuppressWarnings("PMD.SystemPrintln")
|
165
|
|
- private static void sendErrorInternal(final ProgramError error) {
|
|
163
|
+ private void sendErrorInternal(final ProgramError error) {
|
166
|
164
|
final Map<String, String> postData = new HashMap<String, String>();
|
167
|
165
|
List<String> response = new ArrayList<String>();
|
168
|
166
|
int tries = 0;
|
|
@@ -191,7 +189,7 @@ public final class ErrorManager implements Serializable {
|
191
|
189
|
|
192
|
190
|
tries++;
|
193
|
191
|
} while((response.isEmpty() || !response.get(response.size() - 1).
|
194
|
|
- equalsIgnoreCase("Error report submitted. Thank you."))
|
|
192
|
+ equalsIgnoreCase("Error report submitted. Thank you."))
|
195
|
193
|
|| tries >= 5);
|
196
|
194
|
|
197
|
195
|
checkResponses(error, response);
|
|
@@ -253,12 +251,22 @@ public final class ErrorManager implements Serializable {
|
253
|
251
|
* @param error Error that occurred
|
254
|
252
|
*/
|
255
|
253
|
protected void fireErrorAdded(final ProgramError error) {
|
|
254
|
+ int firedListeners = 0;
|
256
|
255
|
final Object[] listeners = errorListeners.getListenerList();
|
257
|
256
|
for (int i = 0; i < listeners.length; i += 2) {
|
258
|
257
|
if (listeners[i] == ErrorListener.class) {
|
259
|
|
- ((ErrorListener) listeners[i + 1]).errorAdded(error);
|
|
258
|
+ final ErrorListener thisListener = ((ErrorListener) listeners[i + 1]);
|
|
259
|
+ if (thisListener.isReady()) {
|
|
260
|
+ thisListener.errorAdded(error);
|
|
261
|
+ firedListeners++;
|
|
262
|
+ }
|
260
|
263
|
}
|
261
|
264
|
}
|
|
265
|
+
|
|
266
|
+ if (firedListeners == 0) {
|
|
267
|
+ System.err.println("An error has occurred: " + error.getLevel()
|
|
268
|
+ + ": " + error.getMessage());
|
|
269
|
+ }
|
262
|
270
|
}
|
263
|
271
|
|
264
|
272
|
/**
|
|
@@ -267,12 +275,21 @@ public final class ErrorManager implements Serializable {
|
267
|
275
|
* @param error Error that occurred
|
268
|
276
|
*/
|
269
|
277
|
protected void fireFatalError(final ProgramError error) {
|
|
278
|
+ int firedListeners = 0;
|
270
|
279
|
final Object[] listeners = errorListeners.getListenerList();
|
271
|
280
|
for (int i = 0; i < listeners.length; i += 2) {
|
272
|
281
|
if (listeners[i] == ErrorListener.class) {
|
273
|
|
- ((ErrorListener) listeners[i + 1]).fatalError(error);
|
|
282
|
+ final ErrorListener thisListener = ((ErrorListener) listeners[i + 1]);
|
|
283
|
+ if (thisListener.isReady()) {
|
|
284
|
+ thisListener.fatalError(error);
|
|
285
|
+ firedListeners++;
|
|
286
|
+ }
|
274
|
287
|
}
|
275
|
288
|
}
|
|
289
|
+
|
|
290
|
+ if (firedListeners == 0) {
|
|
291
|
+ System.err.println("A fatal has occurred: " + error.getMessage());
|
|
292
|
+ }
|
276
|
293
|
}
|
277
|
294
|
|
278
|
295
|
/**
|