From 5a2f8aecb39f809ddbd84ec42ccfb2ddf07d4367 Mon Sep 17 00:00:00 2001 From: Zhangmei Li Date: Wed, 27 Jun 2018 22:41:51 +0800 Subject: [PATCH] HugeGraph-1324: fix "Assertion error: (is_last_reference)" Change-Id: Ie9f9679f87ac7967de54184191a9e6d29130b32f --- .../hugegraph/backend/serializer/BinaryEntryIterator.java | 1 + .../java/com/baidu/hugegraph/task/HugeTaskScheduler.java | 2 +- .../java/com/baidu/hugegraph/task/HugeTaskStatus.java | 2 +- .../main/java/com/baidu/hugegraph/example/Example1.java | 1 + .../backend/store/rocksdb/RocksDBStdSessions.java | 8 +++++++- 5 files changed, 11 insertions(+), 3 deletions(-) diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/backend/serializer/BinaryEntryIterator.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/backend/serializer/BinaryEntryIterator.java index 0b57a6e6e..380384b82 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/backend/serializer/BinaryEntryIterator.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/backend/serializer/BinaryEntryIterator.java @@ -91,6 +91,7 @@ public class BinaryEntryIterator extends BackendEntryIterator { if (this.query.paging() && this.results.hasNext()) { this.results.next(); } + this.results.close(); break; } } diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/task/HugeTaskScheduler.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/task/HugeTaskScheduler.java index 7ecde1703..9b2c165f5 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/task/HugeTaskScheduler.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/task/HugeTaskScheduler.java @@ -105,7 +105,7 @@ public class HugeTaskScheduler { public Future restore(HugeTask task) { E.checkArgumentNotNull(task, "Task can't be null"); task.status(HugeTaskStatus.RESTORING); - return this.submit(task); + return this.submitTask(task); } public Future schedule(HugeTask task) { diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/task/HugeTaskStatus.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/task/HugeTaskStatus.java index 926b570c7..df66455e2 100644 --- a/hugegraph-core/src/main/java/com/baidu/hugegraph/task/HugeTaskStatus.java +++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/task/HugeTaskStatus.java @@ -27,7 +27,7 @@ public enum HugeTaskStatus implements SerialEnum { NEW(1, "new"), QUEUED(2, "queued"), - RESTORING(4, "restoring"), + RESTORING(3, "restoring"), RUNNING(4, "running"), SUCCESS(5, "success"), CANCELLED(6, "cancelled"), diff --git a/hugegraph-example/src/main/java/com/baidu/hugegraph/example/Example1.java b/hugegraph-example/src/main/java/com/baidu/hugegraph/example/Example1.java index 94440f948..a653f99b7 100644 --- a/hugegraph-example/src/main/java/com/baidu/hugegraph/example/Example1.java +++ b/hugegraph-example/src/main/java/com/baidu/hugegraph/example/Example1.java @@ -429,6 +429,7 @@ public class Example1 { variables.set("time", 3); variables.set("owner", "zhangyi1"); variables.keys(); + graph.tx().commit(); variables.remove("time"); variables.get("time"); variables.get("owner"); diff --git a/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBStdSessions.java b/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBStdSessions.java index bd3f32909..404ad3427 100644 --- a/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBStdSessions.java +++ b/hugegraph-rocksdb/src/main/java/com/baidu/hugegraph/backend/store/rocksdb/RocksDBStdSessions.java @@ -649,7 +649,13 @@ public class RocksDBStdSessions extends RocksDBSessions { @Override public boolean hasNext() { - this.matched = this.itor.isOwningHandle() && this.itor.isValid(); + this.matched = this.itor.isOwningHandle(); + if (!this.matched) { + // Maybe closed + return this.matched; + } + + this.matched = this.itor.isValid(); if (this.matched) { // Update position for paging this.position = this.itor.key();