X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=samples%2Fbsh%2Fsrc%2Fdolda%2Fbsvc%2FShellPage.java;h=c26998e337eca7abe646f5958bb14f8eda079239;hb=6e40b32ee7b4e65f600f6aeb25838d6d40e76838;hp=29d0d3d7d6bb429a160dee3664400e46c6caf760;hpb=eb81f42eef6ff400b79410db867f3c2bff687e11;p=jsvc.git diff --git a/samples/bsh/src/dolda/bsvc/ShellPage.java b/samples/bsh/src/dolda/bsvc/ShellPage.java index 29d0d3d..c26998e 100644 --- a/samples/bsh/src/dolda/bsvc/ShellPage.java +++ b/samples/bsh/src/dolda/bsvc/ShellPage.java @@ -6,6 +6,9 @@ import java.io.*; import bsh.Interpreter; public class ShellPage extends SimpleWriter { + private Console cons = new Console(); + private Interpreter ip = new Interpreter(cons); + private static class Console implements bsh.ConsoleInterface { ByteArrayOutputStream obuf = new ByteArrayOutputStream(); ByteArrayOutputStream ebuf = new ByteArrayOutputStream(); @@ -44,6 +47,11 @@ public class ShellPage extends SimpleWriter { public Reader getIn() { return(in); } + + public void reset() { + obuf.reset(); + ebuf.reset(); + } } public void respond(Request req, PrintWriter out) { @@ -60,31 +68,32 @@ public class ShellPage extends SimpleWriter { out.println("
"); out.println(""); - out.println(Misc.htmlq((resp == null)?"(null)":(resp.toString()))); - out.println(""); - } catch(bsh.EvalError exc) { - out.println("
"); - out.print(exc.toString()); - out.println(""); - if(exc instanceof bsh.TargetError) { - bsh.TargetError te = (bsh.TargetError)exc; - out.println("
"); + out.println(Misc.htmlq((resp == null)?"(null)":(resp.toString()))); + out.println(""); + } catch(bsh.EvalError exc) { + out.println("
"); - te.getTarget().printStackTrace(out); + out.print(exc.toString()); out.println(""); + if(exc instanceof bsh.TargetError) { + bsh.TargetError te = (bsh.TargetError)exc; + out.println("
"); + te.getTarget().printStackTrace(out); + out.println(""); + } } + eo = new String(cons.obuf.toByteArray(), Misc.utf8); + ee = new String(cons.ebuf.toByteArray(), Misc.utf8); } - String eo = new String(cons.obuf.toByteArray(), Misc.utf8); - String ee = new String(cons.ebuf.toByteArray(), Misc.utf8); - cons = null; if(eo.length() > 0) { out.println("
");