X-Git-Url: http://jaekl.net/gitweb/?p=frank.git;a=blobdiff_plain;f=prod%2Fnet%2Fjaekl%2Ffrank%2FViewSchedule.java;fp=prod%2Fnet%2Fjaekl%2Ffrank%2FViewSchedule.java;h=b13258b3a8ce66227652ee6880886823601528ce;hp=e044f70ba21fa8a47cdaccad421a9384a5ccc856;hb=60dc53edca9ae2bcd6703e02b26acd47ef3d61a8;hpb=418e4d229a8b607b022cfb867bb702bec1765d13 diff --git a/prod/net/jaekl/frank/ViewSchedule.java b/prod/net/jaekl/frank/ViewSchedule.java index e044f70..b13258b 100644 --- a/prod/net/jaekl/frank/ViewSchedule.java +++ b/prod/net/jaekl/frank/ViewSchedule.java @@ -1,9 +1,7 @@ package net.jaekl.frank; -import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.IOException; -import java.io.PrintStream; import java.io.PrintWriter; import java.util.Locale; @@ -24,6 +22,12 @@ public class ViewSchedule extends HttpServlet { static final String ROUTE = "route"; static final String LANG = "lang"; + ErrorHandler m_errorHandler; + + public ViewSchedule() { + m_errorHandler = new ErrorHandler(); + } + int getParamInt(HttpServletRequest req, String paramName) { String valueStr = getParamString(req, paramName); try { @@ -88,38 +92,7 @@ public class ViewSchedule extends HttpServlet { } } catch (Throwable t) { - writeErrorPage(pw, t, locale); + m_errorHandler.writeErrorPage(pw, t, locale); } } - - void writeErrorPage(PrintWriter pw, Throwable t, Locale locale) { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - PrintStream ps = new PrintStream(baos); - FrankBundle bundle = FrankBundle.getInst(locale); - - pw.println("" + - bundle.get(FrankBundle.FRANK) + ": " + - bundle.get(FrankBundle.ERROR_PAGE) + - ""); - pw.println("

" + - bundle.get(FrankBundle.FRANK) + ": " + - bundle.get(FrankBundle.UNEXPECTED_ERROR) + - "

");
-
-		// Note that, if we cared about security, we would log this stack trace to a
-		// server log, and only report a cross-reference to the log file back to the 
-		// end user's browser, to avoid potentially exposing internal info that we 
-		// don't want to share.
-		// At least at this point, we don't care (that much), and trade off a 
-		// potential information leak in favour of reducing our code complexity
-		// and the administrator's workload.
-		t.printStackTrace(ps);
-		String stackTrace = baos.toString(); 
-		pw.println(stackTrace);
-				
-		pw.println("

"); - pw.println(""); - } - - }