summaryrefslogtreecommitdiffstats
path: root/config-lib
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2022-03-25 17:16:36 +0100
committerGitHub <noreply@github.com>2022-03-25 17:16:36 +0100
commitfff79ba2b645336c437a1503b854d0b821a6d664 (patch)
treed79a93478908de6815744db0557f269aa51820c2 /config-lib
parentf514e98a805a363f2807b9fe6d6bf51534fd5897 (diff)
Revert "Improve error messages for invalid paths"
Diffstat (limited to 'config-lib')
-rw-r--r--config-lib/src/main/java/com/yahoo/config/FileNode.java10
-rw-r--r--config-lib/src/main/java/com/yahoo/config/Node.java2
-rw-r--r--config-lib/src/main/java/com/yahoo/config/NodeVector.java11
-rw-r--r--config-lib/src/main/java/com/yahoo/config/PathNode.java8
-rw-r--r--config-lib/src/test/java/com/yahoo/config/ConfigInstanceBuilderTest.java8
5 files changed, 11 insertions, 28 deletions
diff --git a/config-lib/src/main/java/com/yahoo/config/FileNode.java b/config-lib/src/main/java/com/yahoo/config/FileNode.java
index 3bcccb6d6b1..a7c1ebb1488 100644
--- a/config-lib/src/main/java/com/yahoo/config/FileNode.java
+++ b/config-lib/src/main/java/com/yahoo/config/FileNode.java
@@ -1,8 +1,6 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config;
-import java.nio.file.Path;
-
/**
* Represents a 'file' in a {@link ConfigInstance}, usually a filename.
*
@@ -15,13 +13,7 @@ public class FileNode extends LeafNode<FileReference> {
public FileNode(String stringVal) {
super(true);
- Path path = Path.of(ReferenceNode.stripQuotes(stringVal)).normalize();
- if (path.isAbsolute())
- throw new IllegalArgumentException("path must be relative");
- if (path.startsWith(".."))
- throw new IllegalArgumentException("'..' not allowed in path");
-
- this.value = new FileReference(path.toString());
+ this.value = new FileReference(ReferenceNode.stripQuotes(stringVal));
}
public FileReference value() {
diff --git a/config-lib/src/main/java/com/yahoo/config/Node.java b/config-lib/src/main/java/com/yahoo/config/Node.java
index 4f0c1c24192..a07409b19e7 100644
--- a/config-lib/src/main/java/com/yahoo/config/Node.java
+++ b/config-lib/src/main/java/com/yahoo/config/Node.java
@@ -14,7 +14,7 @@ public abstract class Node {
*
* @param configId the configId of the ConfigInstance that owns (or is) this node
*/
- public void postInitialize(String configId) { }
+ public void postInitialize(String configId) { return; }
/**
* This method is meant for internal use in the configuration system.
diff --git a/config-lib/src/main/java/com/yahoo/config/NodeVector.java b/config-lib/src/main/java/com/yahoo/config/NodeVector.java
index af54c4d90ca..3d07de944fd 100644
--- a/config-lib/src/main/java/com/yahoo/config/NodeVector.java
+++ b/config-lib/src/main/java/com/yahoo/config/NodeVector.java
@@ -1,11 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
+import java.util.*;
/**
@@ -28,6 +24,7 @@ public abstract class NodeVector<NODE> implements java.util.List<NODE> {
return size();
}
+ @SuppressWarnings("serial")
public static class ReadOnlyException extends RuntimeException {
}
@@ -83,7 +80,7 @@ public abstract class NodeVector<NODE> implements java.util.List<NODE> {
@Override
public boolean equals(Object o) {
- return o instanceof NodeVector && vector.equals(((NodeVector<?>) o).vector);
+ return o instanceof NodeVector && vector.equals(((NodeVector) o).vector);
}
@Override
@@ -91,6 +88,7 @@ public abstract class NodeVector<NODE> implements java.util.List<NODE> {
return vector.hashCode();
}
+ @SuppressWarnings("unchecked")
public NODE get(int index) {
return vector.get(index);
}
@@ -134,5 +132,4 @@ public abstract class NodeVector<NODE> implements java.util.List<NODE> {
public <T> T[] toArray(T[] a) {
return vector.toArray(a);
}
-
}
diff --git a/config-lib/src/main/java/com/yahoo/config/PathNode.java b/config-lib/src/main/java/com/yahoo/config/PathNode.java
index 2c43f89af3f..1c4f724a7ed 100644
--- a/config-lib/src/main/java/com/yahoo/config/PathNode.java
+++ b/config-lib/src/main/java/com/yahoo/config/PathNode.java
@@ -23,13 +23,7 @@ public class PathNode extends LeafNode<Path> {
public PathNode(FileReference fileReference) {
super(true);
- Path value = Path.of(fileReference.value()).normalize();
- if (value.isAbsolute())
- throw new IllegalArgumentException("path must be relative");
- if (value.startsWith(".."))
- throw new IllegalArgumentException("'..' not allowed in path");
-
- this.value = value;
+ this.value = new File(fileReference.value()).toPath();
this.fileReference = fileReference;
}
diff --git a/config-lib/src/test/java/com/yahoo/config/ConfigInstanceBuilderTest.java b/config-lib/src/test/java/com/yahoo/config/ConfigInstanceBuilderTest.java
index 4e3b8f3bf22..613cfe1cced 100644
--- a/config-lib/src/test/java/com/yahoo/config/ConfigInstanceBuilderTest.java
+++ b/config-lib/src/test/java/com/yahoo/config/ConfigInstanceBuilderTest.java
@@ -182,8 +182,8 @@ public class ConfigInstanceBuilderTest
intMap("one", 1).
intMap("two", 2).
stringMap("one", "first").
- filemap("f1", "var").
- filemap("f2", "store").
+ filemap("f1", "/var").
+ filemap("f2", "/store").
urlMap("u1", new UrlReference("http://docs.vespa.ai/1")).
urlMap("u2", new UrlReference("http://docs.vespa.ai/2")).
@@ -278,8 +278,8 @@ public class ConfigInstanceBuilderTest
assertEquals(1, config.intMap("one"));
assertEquals(2, config.intMap("two"));
assertEquals("first", config.stringMap("one"));
- assertEquals("var", config.filemap("f1").value());
- assertEquals("store", config.filemap("f2").value());
+ assertEquals("/var", config.filemap("f1").value());
+ assertEquals("/store", config.filemap("f2").value());
assertEquals("basicFoo", config.basicStruct().foo());
assertEquals(3, config.basicStruct().bar()); // new List api
assertEquals(2, config.basicStruct().intArr().size());