diff options
author | jonmv <venstad@gmail.com> | 2023-10-06 23:18:11 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2023-10-06 23:18:11 +0200 |
commit | 29348185c732e7904d626676c32627eed87bfae3 (patch) | |
tree | 47ca710df22ebf0f62f0248c355a852121af0b85 | |
parent | 66cff217a76224ceb0ffc0c35dd4339ed8ff9672 (diff) |
Allow Java class names, which are the default singleton IDs
-rw-r--r-- | zkfacade/src/main/java/com/yahoo/vespa/curator/SingletonManager.java | 5 |
1 files changed, 4 insertions, 1 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 f349ee8e9a4..0c7956de067 100644 --- a/zkfacade/src/main/java/com/yahoo/vespa/curator/SingletonManager.java +++ b/zkfacade/src/main/java/com/yahoo/vespa/curator/SingletonManager.java @@ -38,6 +38,8 @@ import static java.util.logging.Level.WARNING; class SingletonManager { private static final Logger logger = Logger.getLogger(SingletonManager.class.getName()); + private static final String partPattern = "[a-zA-Z0-9$_]([a-zA-Z0-9$_-]+){0,63}"; + private static final Pattern idPattern = Pattern.compile(partPattern + "(\\." + partPattern + ")*"); private final Curator curator; private final Clock clock; @@ -55,7 +57,8 @@ class SingletonManager { } synchronized CompletableFuture<?> register(String singletonId, SingletonWorker singleton) { - Validation.requireMatch(singletonId, "Singleton ID", Pattern.compile("[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}")); + Validation.requireMatch(singletonId, "Singleton ID", idPattern); + Validation.requireLength(singletonId, "Singleton ID", 1, 255); String old = registrations.putIfAbsent(singleton, singletonId); if (old != null) throw new IllegalArgumentException(singleton + " already registered with ID " + old); count.merge(singletonId, 1, Integer::sum); |