Author: norman
Date: Thu Mar 18 19:41:49 2010
New Revision: 924965

URL: http://svn.apache.org/viewvc?rev=924965&view=rev
Log:
Replace use of ConsumerTemplate with "normal" consumer to prevent OOM. 
(JAMES-981)

Modified:
    
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingConsumer.java
    
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingEndpoint.java

Modified: 
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingConsumer.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingConsumer.java?rev=924965&r1=924964&r2=924965&view=diff
==============================================================================
--- 
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingConsumer.java
 (original)
+++ 
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingConsumer.java
 Thu Mar 18 19:41:49 2010
@@ -19,8 +19,9 @@
 
 package org.apache.james.transport.camel;
 
-import org.apache.camel.ConsumerTemplate;
+import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
+import org.apache.camel.PollingConsumer;
 import org.apache.camel.Processor;
 import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.impl.ScheduledPollConsumer;
@@ -37,12 +38,12 @@ import org.apache.camel.impl.ScheduledPo
  */
 public class JMSSelectorPollingConsumer extends ScheduledPollConsumer{
 
-    private ConsumerTemplate consumerTemplate;
+    private CamelContext context;
        private String uri;
     
-    public JMSSelectorPollingConsumer(DefaultEndpoint endpoint, Processor 
processor, ConsumerTemplate consumerTemplate) {
+    public JMSSelectorPollingConsumer(DefaultEndpoint endpoint, Processor 
processor, CamelContext context) {
         super(endpoint, processor);
-        this.consumerTemplate = consumerTemplate;
+        this.context = context;
     }
   
     /**
@@ -67,12 +68,15 @@ public class JMSSelectorPollingConsumer 
         consumerUri.append(" < ");
         consumerUri.append(System.currentTimeMillis());
         
+        PollingConsumer consumer = 
context.getEndpoint(consumerUri.toString()).createPollingConsumer();
+        consumer.start();
         // process every exchange which is ready. If no exchange is left break 
the loop
         while(true) {
-            Exchange ex = 
consumerTemplate.receiveNoWait(consumerUri.toString());
+            Exchange ex = consumer.receiveNoWait();
             if (ex != null) {
                 getProcessor().process(ex);
             } else {
+                consumer.stop();
                 break;
             }
             

Modified: 
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingEndpoint.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingEndpoint.java?rev=924965&r1=924964&r2=924965&view=diff
==============================================================================
--- 
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingEndpoint.java
 (original)
+++ 
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/JMSSelectorPollingEndpoint.java
 Thu Mar 18 19:41:49 2010
@@ -56,7 +56,7 @@ public class JMSSelectorPollingEndpoint 
      * @see 
org.apache.camel.Endpoint#createConsumer(org.apache.camel.Processor)
      */
     public Consumer createConsumer(Processor processor) throws Exception {
-        JMSSelectorPollingConsumer consumer =  new 
JMSSelectorPollingConsumer(this,processor,getCamelContext().createConsumerTemplate());
+        JMSSelectorPollingConsumer consumer =  new 
JMSSelectorPollingConsumer(this,processor,getCamelContext());
         configureConsumer(consumer);
         return consumer;
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to