This is an automated email from the ASF dual-hosted git repository.
marklau99 pushed a commit to branch IOTDB-3709
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/IOTDB-3709 by this push:
new 8367f113df fix loop linked list
8367f113df is described below
commit 8367f113df6f5d3f38060e33da7559c36b152128
Author: Liu Xuxin <[email protected]>
AuthorDate: Fri Jul 1 20:40:41 2022 +0800
fix loop linked list
---
.../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;
}