1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package de.bea.domingo.server;
24
25 import java.io.IOException;
26 import java.io.PrintWriter;
27 import java.util.Map;
28
29 import de.bea.domingo.DNotesException;
30 import de.bea.domingo.DSession;
31 import de.bea.domingo.exception.ExceptionUtil;
32
33 /***
34 * Writes an error to the response writer.
35 *
36 * @author <a href=mailto:kriede@users.sourceforge.net>Kurt Riede</a>
37 */
38 public final class ErrorCommand implements Command {
39
40 /***
41 * {@inheritDoc}
42 *
43 * @see de.bea.domingo.server.Command#execute(de.bea.domingo.DSession, java.util.Map, java.io.PrintWriter)
44 */
45 public void execute(final DSession session, final Map parameters, final PrintWriter printWriter)
46 throws DNotesException, IOException {
47 Exception e = (Exception) parameters.get("exception");
48 String id = (String) parameters.get("error_id");
49 printError(printWriter, "", id, e);
50 }
51
52 /***
53 * Prints an error to the output stream.
54 *
55 * @param message the error message
56 * @param e optional exception causing the error
57 */
58 private void printError(final PrintWriter agentOutput, final String message, final String id, final Throwable t) {
59 agentOutput.println("<?xml version=\"1.0\" ?>");
60 agentOutput.println("<error>");
61 agentOutput.println(" <id>" + id + "</id");
62 agentOutput.println(" <message>" + message + "</message");
63 if (t != null) {
64 agentOutput.print(" <exception>" + ExceptionUtil.getStackTrace(t) + "</eception>");
65 }
66 agentOutput.print("</error>");
67 }
68 }