diff options
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/Freeze/TransactionI.java | 9 | ||||
-rw-r--r-- | java/src/Freeze/TransactionalEvictorI.java | 10 |
2 files changed, 18 insertions, 1 deletions
diff --git a/java/src/Freeze/TransactionI.java b/java/src/Freeze/TransactionI.java index b1d0a807048..e05eab4c663 100644 --- a/java/src/Freeze/TransactionI.java +++ b/java/src/Freeze/TransactionI.java @@ -222,7 +222,14 @@ class TransactionI implements Transaction { if(_postCompletionCallback != null) { - _postCompletionCallback.postCompletion(committed, deadlock); + try + { + _postCompletionCallback.postCompletion(committed, deadlock); + } + finally + { + _postCompletionCallback = null; + } } } diff --git a/java/src/Freeze/TransactionalEvictorI.java b/java/src/Freeze/TransactionalEvictorI.java index 6d44f055ea3..26623346c53 100644 --- a/java/src/Freeze/TransactionalEvictorI.java +++ b/java/src/Freeze/TransactionalEvictorI.java @@ -252,6 +252,16 @@ class TransactionalEvictorI extends EvictorI implements TransactionalEvictor { if(_deactivateController.deactivate()) { + synchronized(this) + { + // + // Set the evictor size to zero, meaning that we will evict + // everything possible. + // + _evictorSize = 0; + evict(); + } + try { closeDbEnv(); |