Skip to content

Commit a1451a1

Browse files
committed
Separating responsibilities of demux and circular buffer.
Also we should not silently ignore FileNotFoundException for a log file.
1 parent 498d0a4 commit a1451a1

File tree

3 files changed

+15
-29
lines changed

3 files changed

+15
-29
lines changed

java/client/src/org/openqa/selenium/firefox/FirefoxBinary.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,12 @@
3535
import org.openqa.selenium.firefox.internal.Executable;
3636
import org.openqa.selenium.io.CircularOutputStream;
3737
import org.openqa.selenium.io.FileHandler;
38+
import org.openqa.selenium.io.MultiOutputStream;
3839
import org.openqa.selenium.os.CommandLine;
3940

4041
import java.io.File;
42+
import java.io.FileNotFoundException;
43+
import java.io.FileOutputStream;
4144
import java.io.IOException;
4245
import java.io.OutputStream;
4346
import java.nio.file.Files;
@@ -352,13 +355,15 @@ public void quit() {
352355
}
353356
}
354357

355-
private OutputStream getDefaultOutputStream() {
358+
private OutputStream getDefaultOutputStream() throws FileNotFoundException {
356359
String firefoxLogFile = System.getProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE);
360+
if (firefoxLogFile == null) {
361+
return new CircularOutputStream();
362+
}
357363
if ("/dev/stdout".equals(firefoxLogFile)) {
358364
return System.out;
359365
}
360-
File logFile = firefoxLogFile == null ? null : new File(firefoxLogFile);
361-
return new CircularOutputStream(logFile);
366+
return new MultiOutputStream(new CircularOutputStream(), new FileOutputStream(firefoxLogFile));
362367
}
363368

364369
/**

java/client/src/org/openqa/selenium/firefox/internal/NewProfileExtensionConnection.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.openqa.selenium.firefox.FirefoxProfile;
2727
import org.openqa.selenium.firefox.NotConnectedException;
2828
import org.openqa.selenium.internal.Lock;
29+
import org.openqa.selenium.io.MultiOutputStream;
2930
import org.openqa.selenium.logging.LocalLogs;
3031
import org.openqa.selenium.logging.NeedsLocalLogs;
3132
import org.openqa.selenium.net.NetworkUtils;
@@ -35,6 +36,7 @@
3536
import org.openqa.selenium.io.CircularOutputStream;
3637

3738
import java.io.File;
39+
import java.io.FileOutputStream;
3840
import java.io.IOException;
3941
import java.net.InetSocketAddress;
4042
import java.net.MalformedURLException;
@@ -48,8 +50,6 @@
4850

4951
public class NewProfileExtensionConnection implements ExtensionConnection, NeedsLocalLogs {
5052

51-
private final static int BUFFER_SIZE = 4096;
52-
5353
private static final NetworkUtils networkUtils = new NetworkUtils();
5454
private final long connectTimeout;
5555
private final FirefoxBinary process;
@@ -92,8 +92,8 @@ public void start() throws IOException {
9292
if ("/dev/stdout".equals(firefoxLogFile)) {
9393
process.setOutputWatcher(System.out);
9494
} else {
95-
File logFile = new File(firefoxLogFile);
96-
process.setOutputWatcher(new CircularOutputStream(logFile, BUFFER_SIZE));
95+
process.setOutputWatcher(
96+
new MultiOutputStream(new CircularOutputStream(), new FileOutputStream(firefoxLogFile)));
9797
}
9898
}
9999

java/client/src/org/openqa/selenium/io/CircularOutputStream.java

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@
1717

1818
package org.openqa.selenium.io;
1919

20-
import java.io.File;
21-
import java.io.FileNotFoundException;
22-
import java.io.FileOutputStream;
2320
import java.io.IOException;
2421
import java.io.OutputStream;
2522

@@ -32,25 +29,13 @@ public class CircularOutputStream extends OutputStream {
3229
private int end;
3330
private boolean filled = false;
3431
private byte[] buffer;
35-
private FileOutputStream out_log;
3632

37-
public CircularOutputStream(File outputFile, int maxSize) {
33+
public CircularOutputStream(int maxSize) {
3834
buffer = new byte[maxSize];
39-
if (outputFile != null) {
40-
try {
41-
out_log = new FileOutputStream(outputFile);
42-
} catch (FileNotFoundException e) {
43-
out_log = null;
44-
}
45-
}
4635
}
4736

48-
public CircularOutputStream(File outputFile) {
49-
this(outputFile, DEFAULT_SIZE);
50-
}
51-
52-
public CircularOutputStream(int maxSize) {
53-
this(null, maxSize);
37+
public CircularOutputStream() {
38+
this(DEFAULT_SIZE);
5439
}
5540

5641
@Override
@@ -65,10 +50,6 @@ public void write(int b) throws IOException {
6550
}
6651

6752
buffer[end++] = (byte) b;
68-
if (out_log != null) {
69-
out_log.write(b);
70-
}
71-
7253
}
7354

7455
@Override

0 commit comments

Comments
 (0)