You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/04/07 09:39:59 UTC
[09/10] camel git commit: CAMEL-9827: Downgrade the embed mongodb as
it does not work.
CAMEL-9827: Downgrade the embed mongodb as it does not work.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/d5d659eb
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d5d659eb
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d5d659eb
Branch: refs/heads/master
Commit: d5d659eb4c4ce897738644e1d41793330d50c0f4
Parents: 6a4b8ce
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Apr 7 09:12:27 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Apr 7 09:39:40 2016 +0200
----------------------------------------------------------------------
.../mongodb/MongoDbTailingProcess.java | 47 +++++++++-----------
1 file changed, 20 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/d5d659eb/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbTailingProcess.java
----------------------------------------------------------------------
diff --git a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbTailingProcess.java b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbTailingProcess.java
index 916f222..2eaf6e1 100644
--- a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbTailingProcess.java
+++ b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbTailingProcess.java
@@ -38,8 +38,8 @@ public class MongoDbTailingProcess implements Runnable {
private static final String CAPPED_KEY = "capped";
public volatile boolean keepRunning = true;
- private final CountDownLatch latch = new CountDownLatch(1);
-
+ public volatile boolean stopped; // = false
+
private final DBCollection dbCol;
private final MongoDbEndpoint endpoint;
private final MongoDbTailableCursorConsumer consumer;
@@ -98,30 +98,28 @@ public class MongoDbTailingProcess implements Runnable {
*/
@Override
public void run() {
- try {
- while (keepRunning) {
- doRun();
- // if the previous call didn't return because we have stopped running, then regenerate the cursor
- if (keepRunning) {
- cursor.close();
- if (LOG.isDebugEnabled()) {
- LOG.debug("Regenerating cursor with lastVal: {}, waiting {}ms first", tailTracking.lastVal, cursorRegenerationDelay);
- }
+ while (keepRunning) {
+ doRun();
+ // if the previous call didn't return because we have stopped running, then regenerate the cursor
+ if (keepRunning) {
+ cursor.close();
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Regenerating cursor with lastVal: {}, waiting {}ms first", tailTracking.lastVal, cursorRegenerationDelay);
+ }
- if (cursorRegenerationDelayEnabled) {
- try {
- Thread.sleep(cursorRegenerationDelay);
- } catch (InterruptedException e) {
- // ignore
- }
+ if (cursorRegenerationDelayEnabled) {
+ try {
+ Thread.sleep(cursorRegenerationDelay);
+ } catch (InterruptedException e) {
+ // ignore
}
-
- cursor = initializeCursor();
}
+
+ cursor = initializeCursor();
}
- } finally {
- latch.countDown();
}
+
+ stopped = true;
}
protected void stop() throws Exception {
@@ -134,15 +132,10 @@ public class MongoDbTailingProcess implements Runnable {
cursor.close();
}
// wait until the main loop acknowledges the stop
- // TODO: yikes this is not good with a endless while loop
- // wait for stop latch
- boolean zero = latch.await(30, TimeUnit.SECONDS);
+ while (!stopped) { }
if (LOG.isInfoEnabled()) {
LOG.info("Stopped MongoDB Tailable Cursor consumer, bound to collection: {}", "db: " + dbCol.getDB() + ", col: " + dbCol.getName());
}
- if (!zero) {
- LOG.warn("Waited 30 seconds for MongoDB Tailable Cursor consumer to stop cleanly. Will now force stop.");
- }
}
/**