Author: davsclaus
Date: Fri Jun 8 06:09:44 2012
New Revision: 1347887
URL: http://svn.apache.org/viewvc?rev=1347887&view=rev
Log:
Fixed a potential NPE when shutting down a seda consumer, which hasn't properly
been started prior to shutdown.
Modified:
camel/branches/camel-2.9.x/ (props changed)
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java
Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Merged /camel/trunk:r1347886
Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java
URL:
http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java?rev=1347887&r1=1347886&r2=1347887&view=diff
==============================================================================
---
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java
(original)
+++
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java
Fri Jun 8 06:09:44 2012
@@ -57,7 +57,7 @@ public class SedaConsumer extends Servic
private static final transient Logger LOG =
LoggerFactory.getLogger(SedaConsumer.class);
private final AtomicInteger taskCount = new AtomicInteger();
- private CountDownLatch latch;
+ private volatile CountDownLatch latch;
private volatile boolean shutdownPending;
private SedaEndpoint endpoint;
private AsyncProcessor processor;
@@ -110,13 +110,15 @@ public class SedaConsumer extends Servic
// signal we want to shutdown
shutdownPending = true;
- LOG.debug("Preparing to shutdown, waiting for {} consumer threads to
complete.", latch.getCount());
+ if (latch != null) {
+ LOG.debug("Preparing to shutdown, waiting for {} consumer threads
to complete.", latch.getCount());
- // wait for all threads to end
- try {
- latch.await();
- } catch (InterruptedException e) {
- // ignore
+ // wait for all threads to end
+ try {
+ latch.await();
+ } catch (InterruptedException e) {
+ // ignore
+ }
}
}