title: WireMock in Junit in Jenkins - BindException: Address already in use
body: <p>I have some Junit test in which I use WireMock. Locally the tests pass, but on Jenkins I get an error of
  <code>java.lang.RuntimeException: java.net.BindException: Address already in use</code></p>
  
  <p>In the WireMock configuration I set <code>dynamicHttpsPort()</code> (which according to docs "<em>Randomly asssign the HTTPS port on startup</em>") and its working locally, but on Jenkins it fails.</p>
  
  <p>My WireMock configuration is</p>
  
  <pre><code>    @Rule
      public WireMockRule wireMockRule = new WireMockRule(wireMockConfig()
              .dynamicHttpsPort()
              .keystorePath(certsDir.resolve("server.jks").toString())
              .keystorePassword(MY_PASS)
              .keystoreType("JKS")
      );
  </code></pre>
  
  <p>I have 2 JUnit classes in which I create a new <code>WireMockRule</code>, and they may run simultaneously. In one of the classes I have 4 tests and in the other one I have one test. All 5 tests fail.</p>
  
  <p>And the full stack trace is:</p>
  
  <pre><code>com.github.tomakehurst.wiremock.common.FatalStartupException: java.lang.RuntimeException: java.net.BindException: Address already in use
      at com.github.tomakehurst.wiremock.WireMockServer.start(WireMockServer.java:146)
      at com.github.tomakehurst.wiremock.junit.WireMockRule$1.evaluate(WireMockRule.java:68)
      at org.junit.rules.RunRules.evaluate(RunRules.java:20)
      at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
      at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
      at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
      at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
      at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
      at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
      at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:172)
      at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:104)
      at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:70)
  Caused by: java.lang.RuntimeException: java.net.BindException: Address already in use
      at com.github.tomakehurst.wiremock.jetty9.JettyHttpServer.start(JettyHttpServer.java:139)
      at com.github.tomakehurst.wiremock.WireMockServer.start(WireMockServer.java:144)
      ... 23 more
  Caused by: java.net.BindException: Address already in use
      at sun.nio.ch.Net.bind0(Native Method)
      at sun.nio.ch.Net.bind(Net.java:433)
      at sun.nio.ch.Net.bind(Net.java:425)
      at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
      at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
      at wiremock.org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:321)
      at wiremock.org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
      at wiremock.org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:236)
      at wiremock.org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
      at wiremock.org.eclipse.jetty.server.Server.doStart(Server.java:366)
      at wiremock.org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
      at com.github.tomakehurst.wiremock.jetty9.JettyHttpServer.start(JettyHttpServer.java:137)
      ... 24 more
  </code></pre>