Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > os-src > by-pkgid > 0ae1fe737391793152bdeff5aa0af2f8 > files > 1

selenium-remote-control-1.0.3-7.20100318svn.fc14.src.rpm

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