You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2014/10/22 20:26:36 UTC

svn commit: r1633671 - /qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/CoalescingCommiter.java

Author: rgodfrey
Date: Wed Oct 22 18:26:36 2014
New Revision: 1633671

URL: http://svn.apache.org/r1633671
Log:
QPID-6125 : make coalescing committer commit on stop if environment still viable

Modified:
    qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/CoalescingCommiter.java

Modified: qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/CoalescingCommiter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/CoalescingCommiter.java?rev=1633671&r1=1633670&r2=1633671&view=diff
==============================================================================
--- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/CoalescingCommiter.java (original)
+++ qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/CoalescingCommiter.java Wed Oct 22 18:26:36 2014
@@ -24,12 +24,12 @@ import java.util.Queue;
 import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import org.apache.log4j.Logger;
-import org.apache.qpid.server.store.StoreFuture;
-
 import com.sleepycat.je.DatabaseException;
 import com.sleepycat.je.Environment;
 import com.sleepycat.je.Transaction;
+import org.apache.log4j.Logger;
+
+import org.apache.qpid.server.store.StoreFuture;
 
 public class CoalescingCommiter implements Committer
 {
@@ -309,17 +309,30 @@ public class CoalescingCommiter implemen
             synchronized (_lock)
             {
                 _stopped.set(true);
-                BDBCommitFuture commit = null;
-                int abortedCommits = 0;
-                while ((commit = _jobQueue.poll()) != null)
+                Environment environment = _environmentFacade.getEnvironment();
+                BDBCommitFuture commit;
+                if (environment != null && environment.isValid())
                 {
-                    abortedCommits++;
-                    commit.abort(e);
+                    environment.flushLog(true);
+                    while ((commit = _jobQueue.poll()) != null)
+                    {
+                        commit.complete();
+                    }
                 }
-                if (LOGGER.isDebugEnabled() && abortedCommits > 0)
+                else
                 {
-                    LOGGER.debug(abortedCommits + " commit(s) were aborted during close.");
+                    int abortedCommits = 0;
+                    while ((commit = _jobQueue.poll()) != null)
+                    {
+                        abortedCommits++;
+                        commit.abort(e);
+                    }
+                    if (LOGGER.isDebugEnabled() && abortedCommits > 0)
+                    {
+                        LOGGER.debug(abortedCommits + " commit(s) were aborted during close.");
+                    }
                 }
+
                 _lock.notifyAll();
             }
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org