From 3b5fa4bf8955f15dd1f52703c7578a054beb74e6 Mon Sep 17 00:00:00 2001 From: Hiram Chirino Date: Thu, 5 Dec 2013 09:23:26 -0500 Subject: [PATCH] Implementing a dirty stop method for the leveldb store that might come in handy for testing. --- .../org/apache/activemq/leveldb/LevelDBClient.scala | 10 +++++++++- .../leveldb/replicated/ElectingLevelDBStore.scala | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/activemq-leveldb-store/src/main/scala/org/apache/activemq/leveldb/LevelDBClient.scala b/activemq-leveldb-store/src/main/scala/org/apache/activemq/leveldb/LevelDBClient.scala index 7872ff8548..44f0d4456b 100755 --- a/activemq-leveldb-store/src/main/scala/org/apache/activemq/leveldb/LevelDBClient.scala +++ b/activemq-leveldb-store/src/main/scala/org/apache/activemq/leveldb/LevelDBClient.scala @@ -971,7 +971,15 @@ class LevelDBClient(store: LevelDBStore) { } } - def stop() = this.synchronized { + def dirty_stop = this.synchronized { + def ingorefailure(func: =>Unit) = try { func } catch { case e:Throwable=> } + ingorefailure(index.close) + ingorefailure(log.close) + ingorefailure(plist.close) + ingorefailure(might_fail(throw new IOException("non-clean close"))) + } + + def stop():Unit = this.synchronized { if( writeExecutor!=null ) { writeExecutor.shutdown writeExecutor.awaitTermination(60, TimeUnit.SECONDS) diff --git a/activemq-leveldb-store/src/main/scala/org/apache/activemq/leveldb/replicated/ElectingLevelDBStore.scala b/activemq-leveldb-store/src/main/scala/org/apache/activemq/leveldb/replicated/ElectingLevelDBStore.scala index 90e80c0463..55e04192e9 100644 --- a/activemq-leveldb-store/src/main/scala/org/apache/activemq/leveldb/replicated/ElectingLevelDBStore.scala +++ b/activemq-leveldb-store/src/main/scala/org/apache/activemq/leveldb/replicated/ElectingLevelDBStore.scala @@ -243,6 +243,7 @@ class ElectingLevelDBStore extends ProxyLevelDBStore { master_stopped.set(true) position = master.wal_append_position stopped_latch.countDown() + master = null func }) master.blocking_executor.execute(^{