KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > dspace > app > webui > servlet > InternalErrorServlet


1 /*
2  * InternalErrorServlet.java
3  *
4  * Version: $Revision: 1.5 $
5  *
6  * Date: $Date: 2005/04/20 14:22:37 $
7  *
8  * Copyright (c) 2002-2005, Hewlett-Packard Company and Massachusetts
9  * Institute of Technology. All rights reserved.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions are
13  * met:
14  *
15  * - Redistributions of source code must retain the above copyright
16  * notice, this list of conditions and the following disclaimer.
17  *
18  * - Redistributions in binary form must reproduce the above copyright
19  * notice, this list of conditions and the following disclaimer in the
20  * documentation and/or other materials provided with the distribution.
21  *
22  * - Neither the name of the Hewlett-Packard Company nor the name of the
23  * Massachusetts Institute of Technology nor the names of their
24  * contributors may be used to endorse or promote products derived from
25  * this software without specific prior written permission.
26  *
27  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
29  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
30  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
31  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
32  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
33  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
34  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
35  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
36  * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
37  * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
38  * DAMAGE.
39  */

40 package org.dspace.app.webui.servlet;
41
42 import java.io.IOException JavaDoc;
43
44 import javax.servlet.ServletException JavaDoc;
45 import javax.servlet.http.HttpServlet JavaDoc;
46 import javax.servlet.http.HttpServletRequest JavaDoc;
47 import javax.servlet.http.HttpServletResponse JavaDoc;
48
49 import org.apache.log4j.Logger;
50 import org.dspace.app.webui.util.JSPManager;
51 import org.dspace.app.webui.util.UIUtil;
52
53 /**
54  * Servlet for handling an internal server error
55  *
56  * @author Robert Tansley
57  * @version $Revision: 1.5 $
58  */

59 public class InternalErrorServlet extends HttpServlet JavaDoc
60 {
61     /*
62      * We don't extend DSpaceServlet in case it's context creation etc. that
63      * caused the problem!
64      */

65
66     /** log4j category */
67     private static Logger log = Logger.getLogger(InternalErrorServlet.class);
68
69     protected void doGet(HttpServletRequest JavaDoc request,
70             HttpServletResponse JavaDoc response) throws ServletException JavaDoc, IOException JavaDoc
71     {
72         // Get the exception that occurred, if any
73
Throwable JavaDoc t = (Throwable JavaDoc) request
74                 .getAttribute("javax.servlet.error.exception");
75
76         String JavaDoc logInfo = UIUtil.getRequestLogInfo(request);
77
78         // Log the error. Since we don't have a context, we need to
79
// build the info "by hand"
80
String JavaDoc logMessage = ":session_id=" + request.getSession().getId()
81                 + ":internal_error:" + logInfo;
82
83         log.warn(logMessage, t);
84
85         // Now we try and mail the designated user, if any
86
UIUtil.sendAlert(request, (Exception JavaDoc) t);
87
88         JSPManager.showJSP(request, response, "/error/internal.jsp");
89     }
90
91     protected void doPost(HttpServletRequest JavaDoc request,
92             HttpServletResponse JavaDoc response) throws ServletException JavaDoc, IOException JavaDoc
93     {
94         doGet(request, response);
95     }
96 }
97
Popular Tags