aboutsummaryrefslogtreecommitdiffstats
path: root/zkfacade
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2023-10-06 12:18:49 +0200
committerjonmv <venstad@gmail.com>2023-10-06 12:18:49 +0200
commit6c819ef2d6679cff4e06133c54ff09779776d914 (patch)
tree269024b26292d2109018cbcd5e69b3bb8d5024c9 /zkfacade
parent3dd336bbeadfc750bc097e90f2c15f8b9e101b39 (diff)
More restrictive singleton ID
Diffstat (limited to 'zkfacade')
-rw-r--r--zkfacade/src/main/java/com/yahoo/vespa/curator/SingletonManager.java6
1 files changed, 3 insertions, 3 deletions
diff --git a/zkfacade/src/main/java/com/yahoo/vespa/curator/SingletonManager.java b/zkfacade/src/main/java/com/yahoo/vespa/curator/SingletonManager.java
index d203f22a474..f349ee8e9a4 100644
--- a/zkfacade/src/main/java/com/yahoo/vespa/curator/SingletonManager.java
+++ b/zkfacade/src/main/java/com/yahoo/vespa/curator/SingletonManager.java
@@ -1,5 +1,6 @@
package com.yahoo.vespa.curator;
+import ai.vespa.validation.Validation;
import com.yahoo.concurrent.UncheckedTimeoutException;
import com.yahoo.jdisc.Metric;
import com.yahoo.path.Path;
@@ -23,6 +24,7 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import java.util.logging.Logger;
+import java.util.regex.Pattern;
import static java.util.logging.Level.FINE;
import static java.util.logging.Level.INFO;
@@ -53,9 +55,7 @@ class SingletonManager {
}
synchronized CompletableFuture<?> register(String singletonId, SingletonWorker singleton) {
- if (singletonId.isEmpty() || singletonId.contains("/") || singletonId.contains("..")) {
- throw new IllegalArgumentException("singleton ID must be non-empty, and may not contain '/' or '..', but got " + singletonId);
- }
+ Validation.requireMatch(singletonId, "Singleton ID", Pattern.compile("[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}"));
String old = registrations.putIfAbsent(singleton, singletonId);
if (old != null) throw new IllegalArgumentException(singleton + " already registered with ID " + old);
count.merge(singletonId, 1, Integer::sum);