commit 21fa9c671e3c3d1dc8e5a871e80d505475e7c27e
Author:     Paul Hammant <p...@hammant.org>
AuthorDate: Sat Mar 24 10:26:06 2012 -0500
Commit:     Paul Hammant <p...@hammant.org>
CommitDate: Sat Mar 24 10:26:06 2012 -0500

    JBEHAVE-750: better webdriver provider adherence

diff --git 
a/web-selenium/src/main/java/org/jbehave/web/selenium/FluentWebDriverPage.java 
b/web-selenium/src/main/java/org/jbehave/web/selenium/FluentWebDriverPage.java
index af1c4bc..3d1930c 100644
--- 
a/web-selenium/src/main/java/org/jbehave/web/selenium/FluentWebDriverPage.java
+++ 
b/web-selenium/src/main/java/org/jbehave/web/selenium/FluentWebDriverPage.java
@@ -10,6 +10,7 @@ public abstract class FluentWebDriverPage extends 
WebDriverPage implements Fluen
     }
 
     private FluentWebDriverImpl fluentWebDriver() {
+        makeNonLazy();
         return new FluentWebDriverImpl(webDriver());
     }
     
diff --git 
a/web-selenium/src/main/java/org/jbehave/web/selenium/WebDriverPage.java 
b/web-selenium/src/main/java/org/jbehave/web/selenium/WebDriverPage.java
index 1b53fad..cdf3e9a 100644
--- a/web-selenium/src/main/java/org/jbehave/web/selenium/WebDriverPage.java
+++ b/web-selenium/src/main/java/org/jbehave/web/selenium/WebDriverPage.java
@@ -22,12 +22,12 @@ import org.openqa.selenium.WebElement;
  */
 public abstract class WebDriverPage implements WebDriver, HasInputDevices, 
JavascriptExecutor, HasCapabilities {
 
-    private WebDriver webDriver;
+    private ThreadLocal<WebDriver> webDriver = new ThreadLocal<WebDriver>();
     private final WebDriverProvider driverProvider;
 
     public WebDriverPage(WebDriverProvider driverProvider) {
         this.driverProvider = driverProvider;
-        this.webDriver = new LazyWebDriver(driverProvider);
+        this.webDriver.set(new LazyWebDriver(driverProvider));
     }
 
     public void get(String url) {
@@ -128,11 +128,11 @@ public abstract class WebDriverPage implements WebDriver, 
HasInputDevices, Javas
 
     protected synchronized void makeNonLazy() {
         // keep doing this per call as WebDriver instances changes per thread.
-        webDriver = driverProvider.get();
+        webDriver.set(driverProvider.get());
     }
 
     protected WebDriver webDriver() {
-        return webDriver;
+        return webDriver.get();
     }
 
 }



Reply via email to