You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ge...@apache.org on 2020/11/06 06:53:01 UTC
[iotdb] 01/01: fix path
This is an automated email from the ASF dual-hosted git repository.
geniuspig pushed a commit to branch IOTDB-986
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit f57b0eb662e13c3cdf3559d96b95ad25e73817eb
Author: Boris <96...@qq.com>
AuthorDate: Fri Nov 6 14:48:02 2020 +0800
fix path
---
.../org/apache/iotdb/db/metadata/MetaUtils.java | 18 +++++++++++++---
.../apache/iotdb/db/metadata/MetaUtilsTest.java | 24 ++++++++++++++--------
2 files changed, 30 insertions(+), 12 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MetaUtils.java b/server/src/main/java/org/apache/iotdb/db/metadata/MetaUtils.java
index ee3ad25..21bf6e5 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MetaUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MetaUtils.java
@@ -46,7 +46,11 @@ public class MetaUtils {
int startIndex = 0;
for (int i = 0; i < path.length(); i++) {
if (path.charAt(i) == IoTDBConstant.PATH_SEPARATOR) {
- nodes.add(path.substring(startIndex, i));
+ String node = path.substring(startIndex, i);
+ if(node.equals("")) {
+ throw new IllegalPathException("Node can't be empty");
+ }
+ nodes.add(node);
startIndex = i + 1;
} else if (path.charAt(i) == '"') {
int endIndex = path.indexOf('"', i + 1);
@@ -55,7 +59,11 @@ public class MetaUtils {
endIndex = path.indexOf('"', endIndex + 1);
}
if (endIndex != -1 && (endIndex == path.length() - 1 || path.charAt(endIndex + 1) == '.')) {
- nodes.add(path.substring(startIndex, endIndex + 1));
+ String node = path.substring(startIndex, endIndex + 1);
+ if(node.equals("")) {
+ throw new IllegalPathException("Node can't be empty");
+ }
+ nodes.add(node);
i = endIndex + 1;
startIndex = endIndex + 2;
} else {
@@ -66,7 +74,11 @@ public class MetaUtils {
}
}
if (startIndex <= path.length() - 1) {
- nodes.add(path.substring(startIndex));
+ String node = path.substring(startIndex);
+ if(node.equals("")) {
+ throw new IllegalPathException("Node can't be empty");
+ }
+ nodes.add(node);
}
return nodes.toArray(new String[0]);
}
diff --git a/server/src/test/java/org/apache/iotdb/db/metadata/MetaUtilsTest.java b/server/src/test/java/org/apache/iotdb/db/metadata/MetaUtilsTest.java
index 18f260b..d5df6a4 100644
--- a/server/src/test/java/org/apache/iotdb/db/metadata/MetaUtilsTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/metadata/MetaUtilsTest.java
@@ -18,7 +18,7 @@
*/
package org.apache.iotdb.db.metadata;
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertArrayEquals;
import java.util.Arrays;
import org.apache.iotdb.db.exception.metadata.IllegalPathException;
@@ -29,24 +29,24 @@ public class MetaUtilsTest {
@Test
public void testSplitPathToNodes() throws IllegalPathException {
- assertEquals(Arrays.asList("root", "sg", "d1", "s1").toArray(),
+ assertArrayEquals(Arrays.asList("root", "sg", "d1", "s1").toArray(),
MetaUtils.splitPathToDetachedPath("root.sg.d1.s1"));
- assertEquals(Arrays.asList("root", "sg", "d1", "\"s.1\"").toArray(),
+ assertArrayEquals(Arrays.asList("root", "sg", "d1", "\"s.1\"").toArray(),
MetaUtils.splitPathToDetachedPath("root.sg.d1.\"s.1\""));
- assertEquals(Arrays.asList("root", "sg", "d1", "\"s\\\".1\"").toArray(),
+ assertArrayEquals(Arrays.asList("root", "sg", "d1", "\"s\\\".1\"").toArray(),
MetaUtils.splitPathToDetachedPath("root.sg.d1.\"s\\\".1\""));
- assertEquals(Arrays.asList("root", "\"s g\"", "d1", "\"s.1\"").toArray(),
+ assertArrayEquals(Arrays.asList("root", "\"s g\"", "d1", "\"s.1\"").toArray(),
MetaUtils.splitPathToDetachedPath("root.\"s g\".d1.\"s.1\""));
- assertEquals(Arrays.asList("root", "\"s g\"", "\"d_.1\"", "\"s.1.1\"").toArray(),
+ assertArrayEquals(Arrays.asList("root", "\"s g\"", "\"d_.1\"", "\"s.1.1\"").toArray(),
MetaUtils.splitPathToDetachedPath("root.\"s g\".\"d_.1\".\"s.1.1\""));
- assertEquals(Arrays.asList("root", "1").toArray(), MetaUtils.splitPathToDetachedPath("root.1"));
+ assertArrayEquals(Arrays.asList("root", "1").toArray(), MetaUtils.splitPathToDetachedPath("root.1"));
- assertEquals(Arrays.asList("root", "sg", "d1", "s", "1").toArray(),
+ assertArrayEquals(Arrays.asList("root", "sg", "d1", "s", "1").toArray(),
MetaUtils.splitPathToDetachedPath("root.sg.d1.s.1"));
try {
@@ -56,7 +56,13 @@ public class MetaUtilsTest {
}
try {
- MetaUtils.splitPathToDetachedPath("root.sg.d1.\'s1\'");
+ MetaUtils.splitPathToDetachedPath("root..a");
+ } catch (IllegalPathException e) {
+ Assert.assertTrue(e.getMessage().contains("Node can't be empty"));
+ }
+
+ try {
+ MetaUtils.splitPathToDetachedPath("root.sg.d1.'s1'");
} catch (IllegalPathException e) {
Assert.assertTrue(e.getMessage().contains("Illegal path with single quote: "));
}