1 10 package net.sourceforge.ejosa.piggybank.presentation.enhydra; 11 12 import com.lutris.appserver.server.*; 13 import com.lutris.appserver.server.httpPresentation.*; 14 15 import com.lutris.logging.*; 16 17 import java.io.*; 18 19 import java.text.*; 20 21 import java.util.*; 22 23 import org.openuss.utility.*; 24 25 import org.w3c.dom.*; 26 import org.w3c.dom.html.*; 27 28 29 36 public class ErrorHandler implements HttpPresentation { 37 private static int PAGE_WIDTH = 50; 39 40 44 public void run(HttpPresentationComms comms) 45 throws HttpPresentationException { 46 if (comms.exception != null) { 48 if (comms.exception instanceof FilePresentationException) { 52 } else { 54 ErrorHTML errorPage = (ErrorHTML) comms.xmlcFactory.create( 57 ErrorHTML.class); 58 59 StringWriter stringWriter = new StringWriter(); 60 comms.exception.printStackTrace(new PrintWriter(stringWriter)); 61 62 LogChannel logChannel = Enhydra.getLogChannel(); 63 64 int level = logChannel.getLevel("DEBUG"); 67 68 logChannel.write(level, "EJOSA error = "); 69 logChannel.write(level, stringWriter.toString()); 70 logChannel.write(level, 71 "EJOSA caught an exception - " + 72 comms.exception.toString(), comms.exception); 73 74 System.out.println(comms.exception); 75 76 Element elementTextErrorMessaqeFormatted = 78 EnhydraPresentationUtility.formatTextToHtml( 79 comms.exception.getMessage(), errorPage, 80 PAGE_WIDTH); 81 82 Element elementTextErrorMessaqe = errorPage.getElementErrorMessage(); 83 elementTextErrorMessaqe.removeAttribute("id"); 84 85 Node deleteNode = elementTextErrorMessaqe.getFirstChild(); 86 elementTextErrorMessaqe.removeChild(deleteNode); 87 elementTextErrorMessaqe.appendChild( 88 elementTextErrorMessaqeFormatted); 89 90 Element elementStackTraceFormatted = EnhydraPresentationUtility.formatTextToHtml( 92 stringWriter.toString(), 93 errorPage, 94 PAGE_WIDTH); 95 96 Element elementTextStackTrace = errorPage.getElementStackTrace(); 97 elementTextStackTrace.removeAttribute("id"); 98 99 deleteNode = elementTextStackTrace.getFirstChild(); 100 elementTextStackTrace.removeChild(deleteNode); 101 elementTextStackTrace.appendChild(elementStackTraceFormatted); 102 103 104 comms.response.writeHTML(errorPage.toDocument()); 106 } 107 } 108 } 109 } | Popular Tags |