davsclaus commented on code in PR #22674:
URL: https://github.com/apache/camel/pull/22674#discussion_r3464716913
##########
components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbChangeStreamsConsumer.java:
##########
@@ -20,29 +20,67 @@
import java.util.concurrent.ExecutorService;
import org.apache.camel.Processor;
+import org.apache.camel.resume.ResumeAdapter;
+import org.apache.camel.resume.ResumeAware;
+import org.apache.camel.resume.ResumeStrategy;
+import org.apache.camel.spi.StateRepository;
import org.apache.camel.support.DefaultConsumer;
+import org.apache.camel.support.resume.ResumeStrategyHelper;
+import org.apache.camel.support.service.ServiceHelper;
+import org.apache.camel.support.service.ServiceSupport;
import org.apache.camel.util.ObjectHelper;
import org.bson.BsonDocument;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import static java.util.Collections.singletonList;
/**
* The MongoDb Change Streams consumer.
*/
-public class MongoDbChangeStreamsConsumer extends DefaultConsumer {
+public class MongoDbChangeStreamsConsumer extends DefaultConsumer implements
ResumeAware<ResumeStrategy> {
+
+ private static final Logger LOG =
LoggerFactory.getLogger(MongoDbChangeStreamsConsumer.class);
+ private static final String MONGODB_RESUME_PLACEHOLDER_ACTION =
"mongodb-resume";
private final MongoDbEndpoint endpoint;
private ExecutorService executor;
private MongoDbChangeStreamsThread changeStreamsThread;
+ private ResumeStrategy resumeStrategy;
+ private boolean stopOffsetRepo;
+ private volatile BsonDocument startupResumeToken;
Review Comment:
The token repository is stopped here before the change streams thread is
stopped (line 58). If the thread is mid-commit (`commitManager.commit()` →
`repo.setState()`), the repo may already be shut down. Consider moving this
block after the thread and executor shutdown to ensure the last token commit
completes before the repo is closed.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]