Skip to content

Commit 8db3890

Browse files
committed
Creating temp dir for files uploaded to remote server.
1 parent 5bf5a90 commit 8db3890

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

java/server/src/org/openqa/selenium/remote/server/InMemorySession.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.openqa.selenium.Capabilities;
3232
import org.openqa.selenium.HasCapabilities;
3333
import org.openqa.selenium.ImmutableCapabilities;
34+
import org.openqa.selenium.SessionNotCreatedException;
3435
import org.openqa.selenium.WebDriver;
3536
import org.openqa.selenium.io.TemporaryFilesystem;
3637
import org.openqa.selenium.remote.Dialect;
@@ -44,7 +45,6 @@
4445
import java.io.InputStream;
4546
import java.io.InputStreamReader;
4647
import java.io.Reader;
47-
import java.io.UncheckedIOException;
4848
import java.lang.reflect.Type;
4949
import java.nio.file.Files;
5050
import java.nio.file.Path;
@@ -84,6 +84,7 @@ private InMemorySession(WebDriver driver, Capabilities capabilities, Dialect dow
8484
this.downstream = Preconditions.checkNotNull(downstream);
8585

8686
File tempRoot = new File(StandardSystemProperty.JAVA_IO_TMPDIR.value(), id.toString());
87+
Preconditions.checkState(tempRoot.mkdirs());
8788
this.filesystem = TemporaryFilesystem.getTmpFsBasedOn(tempRoot);
8889

8990
this.handler = new JsonHttpCommandHandler(
@@ -165,8 +166,8 @@ public ActiveSession apply(NewSessionPayload payload) {
165166
Dialect.OSS :
166167
payload.getDownstreamDialects().iterator().next();
167168
return new InMemorySession(driver, caps, downstream);
168-
} catch (IOException e) {
169-
throw new UncheckedIOException(e);
169+
} catch (IOException|IllegalStateException e) {
170+
throw new SessionNotCreatedException("Cannot establish new session", e);
170171
}
171172
}
172173

java/server/src/org/openqa/selenium/remote/server/ServicedSession.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import static java.util.concurrent.TimeUnit.SECONDS;
2222

23+
import com.google.common.base.Preconditions;
2324
import com.google.common.base.StandardSystemProperty;
2425

2526
import org.openqa.selenium.SessionNotCreatedException;
@@ -69,7 +70,7 @@ public ServicedSession(
6970
Dialect upstream,
7071
SessionCodec codec,
7172
SessionId id,
72-
Map<String, Object> capabilities) {
73+
Map<String, Object> capabilities) throws IOException {
7374
this.service = service;
7475
this.downstream = downstream;
7576
this.upstream = upstream;
@@ -78,6 +79,7 @@ public ServicedSession(
7879
this.capabilities = capabilities;
7980

8081
File tempRoot = new File(StandardSystemProperty.JAVA_IO_TMPDIR.value(), id.toString());
82+
Preconditions.checkState(tempRoot.mkdirs());
8183
this.filesystem = TemporaryFilesystem.getTmpFsBasedOn(tempRoot);
8284
}
8385

@@ -196,7 +198,7 @@ public ActiveSession apply(NewSessionPayload payload) {
196198
codec,
197199
new SessionId(response.getSessionId()),
198200
(Map<String, Object>) response.getValue());
199-
} catch (IOException e) {
201+
} catch (IOException|IllegalStateException|NullPointerException e) {
200202
throw new SessionNotCreatedException("Cannot establish new session", e);
201203
}
202204
}

0 commit comments

Comments
 (0)