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

jackietien pushed a commit to branch rel/0.13
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/rel/0.13 by this push:
     new 6745a55861 fix loop linked list (#6559)
6745a55861 is described below

commit 6745a5586131063a32a0344f99af3375ea1d3874
Author: Liu Xuxin <[email protected]>
AuthorDate: Sat Jul 2 17:43:32 2022 +0800

    fix loop linked list (#6559)
---
 .../apache/iotdb/db/engine/storagegroup/TsFileResourceList.java   | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResourceList.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResourceList.java
index 3446cd634e..27d7e4a579 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResourceList.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResourceList.java
@@ -47,6 +47,9 @@ public class TsFileResourceList implements 
List<TsFileResource> {
    * @param newNode the file to insert
    */
   public void insertBefore(TsFileResource node, TsFileResource newNode) {
+    if (newNode.equals(node)) {
+      return;
+    }
     newNode.prev = node.prev;
     newNode.next = node;
     if (node.prev == null) {
@@ -65,6 +68,9 @@ public class TsFileResourceList implements 
List<TsFileResource> {
    * @param newNode the file to insert
    */
   public void insertAfter(TsFileResource node, TsFileResource newNode) {
+    if (node.equals(newNode)) {
+      return;
+    }
     newNode.prev = node;
     newNode.next = node.next;
     if (node.next == null) {
@@ -135,7 +141,7 @@ public class TsFileResourceList implements 
List<TsFileResource> {
    * node's, the new node will be inserted to the tail of the list.
    */
   public boolean keepOrderInsert(TsFileResource newNode) throws IOException {
-    if (newNode.prev != null || newNode.next != null) {
+    if (newNode.prev != null || newNode.next != null || (count == 1 && header 
== newNode)) {
       // this node already in a list
       return false;
     }

Reply via email to