You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ra...@apache.org on 2012/11/05 00:30:58 UTC
svn commit: r1405674 - in /camel/branches/camel-2.9.x: ./
camel-core/src/main/java/org/apache/camel/support/
components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/
components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/
Author: raulk
Date: Sun Nov 4 23:30:58 2012
New Revision: 1405674
URL: http://svn.apache.org/viewvc?rev=1405674&view=rev
Log:
Backported to 2.9.x. CAMEL-5769: Camel JMS producer can block a thread under specific circumstances. Corrected a log message.
Added:
camel/branches/camel-2.9.x/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBlockedAsyncRoutingEngineTest.java
- copied unchanged from r1405662, camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/issues/JmsBlockedAsyncRoutingEngineTest.java
Modified:
camel/branches/camel-2.9.x/ (props changed)
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/support/DefaultTimeoutMap.java
camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Merged /camel/trunk:r1405662
Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/support/DefaultTimeoutMap.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/support/DefaultTimeoutMap.java?rev=1405674&r1=1405673&r2=1405674&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/support/DefaultTimeoutMap.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/support/DefaultTimeoutMap.java Sun Nov 4 23:30:58 2012
@@ -165,6 +165,10 @@ public class DefaultTimeoutMap<K, V> ext
public void purge() {
log.trace("There are {} in the timeout map", map.size());
+ if (map.isEmpty()) {
+ return;
+ }
+
long now = currentTime();
List<TimeoutMapEntry<K, V>> expired = new ArrayList<TimeoutMapEntry<K, V>>();
@@ -200,7 +204,13 @@ public class DefaultTimeoutMap<K, V> ext
try {
// now fire eviction notification
for (TimeoutMapEntry<K, V> entry : expired) {
- boolean evict = onEviction(entry.getKey(), entry.getValue());
+ boolean evict = false;
+ try {
+ evict = onEviction(entry.getKey(), entry.getValue());
+ } catch (Throwable t) {
+ log.warn("Exception happened during eviction of entry ID {}, won't evict and will continue trying: {}",
+ entry.getValue(), t);
+ }
if (evict) {
// okay this entry should be evicted
evicts.add(entry.getKey());
Modified: camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java?rev=1405674&r1=1405673&r2=1405674&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java (original)
+++ camel/branches/camel-2.9.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java Sun Nov 4 23:30:58 2012
@@ -53,7 +53,9 @@ public class TemporaryQueueReplyManager
log.trace("Updated provisional correlationId [{}] to expected correlationId [{}]", correlationId, newCorrelationId);
ReplyHandler handler = correlation.remove(correlationId);
- correlation.put(newCorrelationId, handler, requestTimeout);
+ if (handler != null) {
+ correlation.put(newCorrelationId, handler, requestTimeout);
+ }
}
@Override