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

jianyun pushed a commit to branch rocksdb/dev
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 68f9c0d5d2d6cf8a6b2b1d59d88075fe9577383a
Author: lisijia <[email protected]>
AuthorDate: Fri Mar 4 11:33:28 2022 +0800

    fix a bug where the number of nodes is incorrect
---
 .../java/org/apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java | 3 ++-
 .../java/org/apache/iotdb/db/metadata/rocksdb/RocksDBUtils.java    | 7 ++++---
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java
 
b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java
index 603c07f..0896d34 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java
@@ -958,7 +958,8 @@ public class MRocksDBManager implements IMetaManager {
   }
 
   public void traverseOutcomeBasins(
-      String[] nodes, int maxLevel, Consumer<String> consumer, Character[] 
nodeTypeArray) {
+      String[] nodes, int maxLevel, Consumer<String> consumer, Character[] 
nodeTypeArray)
+      throws IllegalPathException {
     List<String[]> allNodesArray = 
RocksDBUtils.replaceMultiWildcardToSingle(nodes, maxLevel);
     allNodesArray.parallelStream().forEach(x -> traverseByPatternPath(x, 
consumer, nodeTypeArray));
   }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/RocksDBUtils.java 
b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/RocksDBUtils.java
index 1e9e365..c4f4e17 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/RocksDBUtils.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/RocksDBUtils.java
@@ -510,7 +510,8 @@ public class RocksDBUtils {
   }
 
   // eg. root.a.*.**.b.**.c
-  public static List<String[]> replaceMultiWildcardToSingle(String[] nodes, 
int maxLevel) {
+  public static List<String[]> replaceMultiWildcardToSingle(String[] nodes, 
int maxLevel)
+      throws IllegalPathException {
     List<String[]> allNodesArray = new ArrayList<>();
     List<Integer> multiWildcardPosition = new ArrayList<>();
     for (int i = 0; i < nodes.length; i++) {
@@ -524,7 +525,7 @@ public class RocksDBUtils {
       for (int i = 1; i <= maxLevel - nodes.length + 2; i++) {
         String[] clone = nodes.clone();
         clone[multiWildcardPosition.get(0)] = replaceWildcard(i);
-        allNodesArray.add(clone);
+        allNodesArray.add(RocksDBUtils.newStringArray(clone));
       }
     } else {
       for (int sum = multiWildcardPosition.size();
@@ -536,7 +537,7 @@ public class RocksDBUtils {
           for (int i = 0; i < value.length; i++) {
             clone[multiWildcardPosition.get(i)] = replaceWildcard(value[i]);
           }
-          allNodesArray.add(clone);
+          allNodesArray.add(RocksDBUtils.newStringArray(clone));
         }
       }
     }

Reply via email to