From: Mathieu Baudier Date: Sun, 10 Dec 2023 17:06:45 +0000 (+0100) Subject: Make UUID factory initialisation more robust X-Git-Tag: v2.3.24~6 X-Git-Url: https://git.argeo.org/?p=lgpl%2Fargeo-commons.git;a=commitdiff_plain;h=23397c2209d8d654e200e0e96112d2ff4cf7b7af Make UUID factory initialisation more robust --- diff --git a/org.argeo.cms/src/org/argeo/cms/acr/CmsUuidFactory.java b/org.argeo.cms/src/org/argeo/cms/acr/CmsUuidFactory.java index 7270c0896..357a0102f 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/CmsUuidFactory.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/CmsUuidFactory.java @@ -11,6 +11,7 @@ import java.util.Enumeration; import org.argeo.api.cms.CmsLog; import org.argeo.api.uuid.ConcurrentUuidFactory; +import org.argeo.api.uuid.NodeIdSupplier; import org.argeo.api.uuid.UuidBinaryUtils; public class CmsUuidFactory extends ConcurrentUuidFactory { @@ -73,8 +74,10 @@ public class CmsUuidFactory extends ConcurrentUuidFactory { } } InetAddress selectedIp = selectedIpv6 != null ? selectedIpv6 : selectedIpv4; - if (selectedIp == null) - throw new IllegalStateException("No IP address found"); + if (selectedIp == null) { + log.warn("No IP address found, using a random node id for UUID generation"); + return NodeIdSupplier.randomNodeId(); + } byte[] digest = sha1(selectedIp.getAddress()); log.info("Use IP " + selectedIp + " hashed as " + UuidBinaryUtils.toHexString(digest) + " as node id"); byte[] nodeId = toNodeIdBytes(digest, 0);