KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > archive > crawler > io > RuntimeErrorFormatter


1 /* RuntimeErrorFormatter
2  *
3  * Created on Jul 7, 2003
4  *
5  * $Id: RuntimeErrorFormatter.java,v 1.8 2005/02/17 23:51:25 gojomo Exp $
6  *
7  * Copyright (C) 2003 Internet Archive.
8  *
9  * This file is part of the Heritrix web crawler (crawler.archive.org).
10  *
11  * Heritrix is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser Public License as published by
13  * the Free Software Foundation; either version 2.1 of the License, or
14  * any later version.
15  *
16  * Heritrix is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Lesser Public License for more details.
20  *
21  * You should have received a copy of the GNU Lesser Public License
22  * along with Heritrix; if not, write to the Free Software
23  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24  */

25 package org.archive.crawler.io;
26
27 import java.io.PrintWriter JavaDoc;
28 import java.io.StringWriter JavaDoc;
29 import java.util.logging.LogRecord JavaDoc;
30
31 import org.archive.crawler.datamodel.CoreAttributeConstants;
32 import org.archive.crawler.datamodel.CrawlURI;
33
34 /**
35  * Runtime exception log formatter.
36  *
37  * Used to format unexpected runtime exceptions such as
38  * OOMEs.
39  *
40  * @author gojomo
41  */

42 public class RuntimeErrorFormatter extends UriProcessingFormatter
43 implements CoreAttributeConstants {
44     public String JavaDoc format(LogRecord JavaDoc lr) {
45         Object JavaDoc [] parameters = lr.getParameters();
46         String JavaDoc stackTrace = "None retrieved";
47         if (parameters != null) {
48             // CrawlURI is always first parameter.
49
CrawlURI curi = (CrawlURI)parameters[0];
50             if (curi != null) {
51                 Throwable JavaDoc t = (Throwable JavaDoc)curi.getObject(A_RUNTIME_EXCEPTION);
52                 assert t != null : "Null throwable";
53                 StringWriter JavaDoc sw = new StringWriter JavaDoc();
54                 if (t == null) {
55                     sw.write("No exception to report.");
56                 } else {
57                     t.printStackTrace(new PrintWriter JavaDoc(sw));
58                 }
59                 stackTrace = sw.toString();
60             }
61         }
62         return super.format(lr) + " " + stackTrace;
63     }
64 }
65
Popular Tags