summaryrefslogtreecommitdiffstats
path: root/vespajlib/src/main/java/com/yahoo/path/Path.java
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2022-03-25 10:43:30 +0100
committerJon Marius Venstad <venstad@gmail.com>2022-03-25 10:43:30 +0100
commit41f20e0ffe572f2b42b389e21c5c683a38f319a2 (patch)
treed5e1fa9112e5b842c0128c613c378a943e14cd34 /vespajlib/src/main/java/com/yahoo/path/Path.java
parent7d8808a32d70cbf17a45059b4541e350307c01dd (diff)
Improve error message
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/path/Path.java')
-rw-r--r--vespajlib/src/main/java/com/yahoo/path/Path.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/path/Path.java b/vespajlib/src/main/java/com/yahoo/path/Path.java
index 12f93d15737..4fcabe57d25 100644
--- a/vespajlib/src/main/java/com/yahoo/path/Path.java
+++ b/vespajlib/src/main/java/com/yahoo/path/Path.java
@@ -43,6 +43,10 @@ public final class Path {
* @param elements a list of path elements
*/
private Path(List<String> elements, String delimiter) {
+ for (String element : elements)
+ if ("..".equals(element))
+ throw new IllegalArgumentException("'..' is not allowed in path");
+
this.elements = ImmutableList.copyOf(elements);
this.delimiter = delimiter;
}
@@ -138,6 +142,7 @@ public final class Path {
* @throws IllegalStateException if this path is empty
*/
public Path withLast(String element) {
+ if (element.contains(delimiter)) throw new IllegalArgumentException("single element cannot contain delimiter " + delimiter);
if (element.isEmpty()) throw new IllegalStateException("Cannot set the last element of an empty path");
List<String> newElements = new ArrayList<>(elements);
newElements.set(newElements.size() -1, element);