From 40642b91c25b0c81b58860f4a58b2c462ab9d860 Mon Sep 17 00:00:00 2001 From: Lubomir Rintel <lkundrak@v3.sk> Date: Tue, 20 Apr 2010 12:28:26 +0200 Subject: [PATCH] Do not throw browser output away Log it instead (on warn level, good browsers don't scream too much). --- .../server/browserlaunchers/AsyncExecute.java | 33 ++++++++++++++++++-- 1 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/openqa/selenium/server/browserlaunchers/AsyncExecute.java b/src/main/java/org/openqa/selenium/server/browserlaunchers/AsyncExecute.java index b3a9227..9bedb1d 100644 --- a/src/main/java/org/openqa/selenium/server/browserlaunchers/AsyncExecute.java +++ b/src/main/java/org/openqa/selenium/server/browserlaunchers/AsyncExecute.java @@ -90,12 +90,39 @@ public class AsyncExecute extends Execute { AsyncExecute.sleepTight(1000); } - OutputStream dummyOut = new OutputStream() { - public void write(int b) throws IOException { + OutputStream loggingOut = new OutputStream() { + String buffer = ""; + + public void flush () + { + log.warn ("Browser: " + buffer); + buffer = ""; + } + + public void write (int b) + { + if ((char)b == '\n') + flush (); + else + buffer += (char)b; + } + + /* This does not get called by PumpStreamHandler, + * since we throw away a reference to it. Bad. */ + public void close () + { + flush (); + } + + /* Not a good idea to rely on this. */ + protected void finalize () throws Throwable + { + close (); + super.finalize (); } }; - ExecuteStreamHandler streamHandler = new PumpStreamHandler(dummyOut); + ExecuteStreamHandler streamHandler = new PumpStreamHandler(loggingOut); streamHandler.setProcessErrorStream(process.getErrorStream()); streamHandler.setProcessOutputStream(process.getInputStream()); streamHandler.start(); -- 1.7.0.1