diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/StubRunnerWireMockTestExecutionListener.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/StubRunnerWireMockTestExecutionListener.java index 7bd3005ffa..8cbbf6ad7f 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/StubRunnerWireMockTestExecutionListener.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/provider/wiremock/StubRunnerWireMockTestExecutionListener.java @@ -27,8 +27,12 @@ public final class StubRunnerWireMockTestExecutionListener extends AbstractTestE private static Map> STUBS = new ConcurrentHashMap<>(); @Override public void beforeTestClass(TestContext testContext) { + ApplicationContext context = context(testContext); + if (context == null) { + return; + } Map stubs = STUBS - .get(testContext.getApplicationContext()); + .get(context); if (stubs != null) { if (log.isDebugEnabled()) { log.debug("Found a matching application context from [" + testContext.getTestClass().getName() + "]"); @@ -60,7 +64,11 @@ public final class StubRunnerWireMockTestExecutionListener extends AbstractTestE } @Override public void afterTestClass(TestContext testContext) { - STUBS.put(testContext.getApplicationContext(), WireMockHttpServerStub.SERVERS); + ApplicationContext context = context(testContext); + if (context == null) { + return; + } + STUBS.put(context, WireMockHttpServerStub.SERVERS); if (log.isDebugEnabled()) { log.debug("Stopping servers " + WireMockHttpServerStub.SERVERS); } @@ -68,4 +76,15 @@ public final class StubRunnerWireMockTestExecutionListener extends AbstractTestE serverStub.stop(); } } + + private ApplicationContext context(TestContext testContext) { + try { + return testContext.getApplicationContext(); + } catch (Exception ex) { + if (log.isDebugEnabled() ) { + log.debug("Exception occurred while trying to retrieve the application context", ex); + } + return null; + } + } } \ No newline at end of file