Author: davsclaus
Date: Fri Jun 29 08:27:05 2012
New Revision: 1355265
URL: http://svn.apache.org/viewvc?rev=1355265&view=rev
Log:
CAMEL-5405: Ensure mina producer always disconnects if configured to do so,
even for timeouts when doing request/reply.
Modified:
camel/branches/camel-2.9.x/ (props changed)
camel/branches/camel-2.9.x/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java
Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Merged /camel/trunk:r1355261
Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
camel/branches/camel-2.9.x/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java
URL:
http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java?rev=1355265&r1=1355264&r2=1355265&view=diff
==============================================================================
---
camel/branches/camel-2.9.x/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java
(original)
+++
camel/branches/camel-2.9.x/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java
Fri Jun 29 08:27:05 2012
@@ -73,6 +73,15 @@ public class MinaProducer extends Defaul
}
public void process(Exchange exchange) throws Exception {
+ try {
+ doProcess(exchange);
+ } finally {
+ // ensure we always disconnect if configured
+ maybeDisconnectOnDone(exchange);
+ }
+ }
+
+ protected void doProcess(Exchange exchange) throws Exception {
if (session == null && !lazySessionCreation) {
throw new IllegalStateException("Not started yet!");
}
@@ -141,6 +150,12 @@ public class MinaProducer extends Defaul
}
}
}
+ }
+
+ protected void maybeDisconnectOnDone(Exchange exchange) {
+ if (session == null) {
+ return;
+ }
// should session be closed after complete?
Boolean close;