Issue 201: Fix the flaky test TestBKDistributedLogManager.deleteDuringRead
This closes #204, #201
diff --git a/distributedlog-core/src/main/java/org/apache/distributedlog/BKDistributedLogNamespace.java b/distributedlog-core/src/main/java/org/apache/distributedlog/BKDistributedLogNamespace.java
index bc6cc8b..b756feb 100644
--- a/distributedlog-core/src/main/java/org/apache/distributedlog/BKDistributedLogNamespace.java
+++ b/distributedlog-core/src/main/java/org/apache/distributedlog/BKDistributedLogNamespace.java
@@ -298,16 +298,17 @@
/**
* Close the distributed log manager factory, freeing any resources it may hold.
+ * close the resource in reverse order v.s. in which they are started
*/
@Override
public void close() {
if (!closed.compareAndSet(false, true)) {
return;
}
- // shutdown the driver
- Utils.close(driver);
// close the write limiter
this.writeLimiter.close();
+ // shutdown the driver
+ Utils.close(driver);
// Shutdown the schedulers
SchedulerUtils.shutdownScheduler(scheduler, conf.getSchedulerShutdownTimeoutMs(),
TimeUnit.MILLISECONDS);
diff --git a/distributedlog-core/src/main/java/org/apache/distributedlog/BKLogWriteHandler.java b/distributedlog-core/src/main/java/org/apache/distributedlog/BKLogWriteHandler.java
index 18ec549..955fafe 100644
--- a/distributedlog-core/src/main/java/org/apache/distributedlog/BKLogWriteHandler.java
+++ b/distributedlog-core/src/main/java/org/apache/distributedlog/BKLogWriteHandler.java
@@ -83,7 +83,7 @@
* </ul>
*/
class BKLogWriteHandler extends BKLogHandler {
- static final Logger LOG = LoggerFactory.getLogger(BKLogReadHandler.class);
+ static final Logger LOG = LoggerFactory.getLogger(BKLogWriteHandler.class);
private static Transaction.OpListener<LogSegmentEntryWriter> NULL_OP_LISTENER =
new Transaction.OpListener<LogSegmentEntryWriter>() {
diff --git a/distributedlog-core/src/main/java/org/apache/distributedlog/api/namespace/Namespace.java b/distributedlog-core/src/main/java/org/apache/distributedlog/api/namespace/Namespace.java
index cad0f97..8766f17 100644
--- a/distributedlog-core/src/main/java/org/apache/distributedlog/api/namespace/Namespace.java
+++ b/distributedlog-core/src/main/java/org/apache/distributedlog/api/namespace/Namespace.java
@@ -70,7 +70,7 @@
*/
@Public
@Evolving
-public interface Namespace {
+public interface Namespace extends AutoCloseable{
/**
* Get the namespace driver used by this namespace.
@@ -187,6 +187,7 @@
/**
* Close the namespace.
*/
+ @Override
void close();
}