Showing the changes to java/pkg/java/util/logging/ErrorManager.java (1 of 18352 files). Show all
Unified · Split
| @@ -0,0 +1,99 @@ | ||
| 1 | +/* | |
| 2 | + * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved. | |
| 3 | + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | |
| 4 | + * | |
| 5 | + * This code is free software; you can redistribute it and/or modify it | |
| 6 | + * under the terms of the GNU General Public License version 2 only, as | |
| 7 | + * published by the Free Software Foundation. Oracle designates this | |
| 8 | + * particular file as subject to the "Classpath" exception as provided | |
| 9 | + * by Oracle in the LICENSE file that accompanied this code. | |
| 10 | + * | |
| 11 | + * This code is distributed in the hope that it will be useful, but WITHOUT | |
| 12 | + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
| 13 | + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
| 14 | + * version 2 for more details (a copy is included in the LICENSE file that | |
| 15 | + * accompanied this code). | |
| 16 | + * | |
| 17 | + * You should have received a copy of the GNU General Public License version | |
| 18 | + * 2 along with this work; if not, write to the Free Software Foundation, | |
| 19 | + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
| 20 | + * | |
| 21 | + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | |
| 22 | + * or visit www.oracle.com if you need additional information or have any | |
| 23 | + * questions. | |
| 24 | + */ | |
| 25 | + | |
| 26 | + | |
| 27 | +package java.util.logging; | |
| 28 | + | |
| 29 | +/** | |
| 30 | + * ErrorManager objects can be attached to Handlers to process | |
| 31 | + * any error that occurs on a Handler during Logging. | |
| 32 | + * <p> | |
| 33 | + * When processing logging output, if a Handler encounters problems | |
| 34 | + * then rather than throwing an Exception back to the issuer of | |
| 35 | + * the logging call (who is unlikely to be interested) the Handler | |
| 36 | + * should call its associated ErrorManager. | |
| 37 | + */ | |
| 38 | + | |
| 39 | +public class ErrorManager { | |
| 40 | + private boolean reported = false; | |
| 41 | + | |
| 42 | + /* | |
| 43 | + * We declare standard error codes for important categories of errors. | |
| 44 | + */ | |
| 45 | + | |
| 46 | + /** | |
| 47 | + * GENERIC_FAILURE is used for failure that don't fit | |
| 48 | + * into one of the other categories. | |
| 49 | + */ | |
| 50 | + public final static int GENERIC_FAILURE = 0; | |
| 51 | + /** | |
| 52 | + * WRITE_FAILURE is used when a write to an output stream fails. | |
| 53 | + */ | |
| 54 | + public final static int WRITE_FAILURE = 1; | |
| 55 | + /** | |
| 56 | + * FLUSH_FAILURE is used when a flush to an output stream fails. | |
| 57 | + */ | |
| 58 | + public final static int FLUSH_FAILURE = 2; | |
| 59 | + /** | |
| 60 | + * CLOSE_FAILURE is used when a close of an output stream fails. | |
| 61 | + */ | |
| 62 | + public final static int CLOSE_FAILURE = 3; | |
| 63 | + /** | |
| 64 | + * OPEN_FAILURE is used when an open of an output stream fails. | |
| 65 | + */ | |
| 66 | + public final static int OPEN_FAILURE = 4; | |
| 67 | + /** | |
| 68 | + * FORMAT_FAILURE is used when formatting fails for any reason. | |
| 69 | + */ | |
| 70 | + public final static int FORMAT_FAILURE = 5; | |
| 71 | + | |
| 72 | + /** | |
| 73 | + * The error method is called when a Handler failure occurs. | |
| 74 | + * <p> | |
| 75 | + * This method may be overridden in subclasses. The default | |
| 76 | + * behavior in this base class is that the first call is | |
| 77 | + * reported to System.err, and subsequent calls are ignored. | |
| 78 | + * | |
| 79 | + * @param msg a descriptive string (may be null) | |
| 80 | + * @param ex an exception (may be null) | |
| 81 | + * @param code an error code defined in ErrorManager | |
| 82 | + */ | |
| 83 | + public synchronized void error(String msg, Exception ex, int code) { | |
| 84 | + if (reported) { | |
| 85 | + // We only report the first error, to avoid clogging | |
| 86 | + // the screen. | |
| 87 | + return; | |
| 88 | + } | |
| 89 | + reported = true; | |
| 90 | + String text = "java.util.logging.ErrorManager: " + code; | |
| 91 | + if (msg != null) { | |
| 92 | + text = text + ": " + msg; | |
| 93 | + } | |
| 94 | + System.err.println(text); | |
| 95 | + if (ex != null) { | |
| 96 | + ex.printStackTrace(); | |
| 97 | + } | |
| 98 | + } | |
| 99 | +} | |