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:00 UTC

[iotdb] branch IOTDB-986 created (now f57b0eb)

This is an automated email from the ASF dual-hosted git repository.

geniuspig pushed a change to branch IOTDB-986
in repository https://gitbox.apache.org/repos/asf/iotdb.git.


      at f57b0eb  fix path

This branch includes the following new commits:

     new f57b0eb  fix path

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[iotdb] 01/01: fix path

Posted by ge...@apache.org.
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: "));
     }