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;


Reply via email to