Shared WebDriver se vuelve nulo en el segundo escenario usando PicoContainer

He usado la solución aceptadaaquí y se me ocurrió el siguiente código:

Bibliotecas referenciadas:

Característica:

Feature: FeatureA

  Scenario: ScenarioA
    Given 
    When 
    Then

  Scenario: ScenarioB
    Given 
    When 
    Then

Paso base:

public class BaseStep {
    protected WebDriver driver = null;
    private static boolean isInitialized = false;

    @Before
    public void setUp() throws Exception {
        if (!isInitialized) {
            driver = SeleniumUtil.getWebDriver(ConfigUtil.readKey("browser"));
            isInitialized = true;
        }
    }

    @After
    public void tearDown() {
        driver.quit();
    }

}

Paso A:

public class StepA {
    private BaseStep baseStep = null;
    private WebDriver driver = null;

    // PicoContainer injects BaseStep class
    public StepA(BaseStep baseStep) {
        this.baseStep = baseStep;
    }

    @Given("^I am at the Login page$")
    public void givenIAmAtTheLoginPage() throws Exception {
        driver = baseStep.driver;
        driver.get(ConfigUtil.readKey("base_url"));
    }

    @When
    @When
    @Then
    @Then

}

Sin embargo, el conductor "muere" después detearDown() del Escenario A y se vuelve nulo en el paso Dado del Escenario B (ambos escenarios usan el mismo Dado). No estoy usando Maven.

Respuestas a la pregunta(2)

Su respuesta a la pregunta