diff --git a/vertx-core/src/main/java/io/vertx/core/impl/deployment/DefaultDeploymentManager.java b/vertx-core/src/main/java/io/vertx/core/impl/deployment/DefaultDeploymentManager.java index 089b26894f2..b16868e57e0 100644 --- a/vertx-core/src/main/java/io/vertx/core/impl/deployment/DefaultDeploymentManager.java +++ b/vertx-core/src/main/java/io/vertx/core/impl/deployment/DefaultDeploymentManager.java @@ -19,6 +19,7 @@ import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicLong; /** * @author Tim Fox @@ -27,6 +28,8 @@ public class DefaultDeploymentManager implements DeploymentManager { public static final Logger log = LoggerFactory.getLogger(DefaultDeploymentManager.class); + private static final AtomicLong nextId = new AtomicLong(); + private final VertxImpl vertx; private final Map deploying = new HashMap<>(); private final Map deployments = new ConcurrentHashMap<>(); @@ -36,7 +39,11 @@ public DefaultDeploymentManager(VertxImpl vertx) { } private String generateDeploymentID() { - return UUID.randomUUID().toString(); + if (vertx.isClustered() && vertx.haManager()!=null) { + // in this case we need a globally unique id + return UUID.randomUUID().toString(); + } + return Long.valueOf(nextId.incrementAndGet()).toString(); } public Future undeploy(String deploymentID) {