diff --git a/src/main/java/com/github/dockerjava/core/DockerClientBuilder.java b/src/main/java/com/github/dockerjava/core/DockerClientBuilder.java index 51f8c4dc7..f9fd4f2de 100644 --- a/src/main/java/com/github/dockerjava/core/DockerClientBuilder.java +++ b/src/main/java/com/github/dockerjava/core/DockerClientBuilder.java @@ -16,12 +16,9 @@ public class DockerClientBuilder { static { serviceLoader.reload(); Iterator iterator = serviceLoader.iterator(); - if (!iterator.hasNext()) { - throw new RuntimeException("Fatal: Can't find any implementation of '" - + DockerCmdExecFactory.class.getName() + "' in the current classpath."); + if (iterator.hasNext()) { + factoryClass = iterator.next().getClass(); } - - factoryClass = iterator.next().getClass(); } private DockerClientImpl dockerClient = null; @@ -49,6 +46,11 @@ public static DockerClientBuilder getInstance(String serverUrl) { } public static DockerCmdExecFactory getDefaultDockerCmdExecFactory() { + if (factoryClass == null) { + throw new RuntimeException("Fatal: Can't find any implementation of '" + + DockerCmdExecFactory.class.getName() + "' in the current classpath."); + } + try { return factoryClass.newInstance(); } catch (InstantiationException | IllegalAccessException e) {