DOCS:report incident tutorial has leaky code. (recreates producerTemplate()) 
-----------------------------------------------------------------------------

                 Key: CAMEL-2818
                 URL: https://issues.apache.org/activemq/browse/CAMEL-2818
             Project: Apache Camel
          Issue Type: Improvement
          Components: documentation, examples, website
         Environment: Tomcat 6.0.26
            Reporter: Karl Palsson
            Priority: Trivial


On http://camel.apache.org/tutorial-example-reportincident-part4.html in the 
section labelled: {{Adding the RouteBuilder}}, there is some code labelled as 
being inside the web service operation...

{code:java}
public OutputReportIncident reportIncident(InputReportIncident parameters) {
        Object mailBody = 
context.createProducerTemplate().sendBody("direct:start", parameters);
        System.out.println("Body:" + mailBody);

        // return an OK reply
        OutputReportIncident out = new OutputReportIncident();
        out.setCode("OK");
        return out;
    }
{code}

The commentary underneath makes special note of obtaining the producerTemplate 
with {{context.createProducerTemplate()}}  

However, using this example code will result in leaks of DirectProducer objects 
(under camel 2.1.x) or ThreadPoolExecutors (under camel 2.3.x) and eventual 
heap exhaustion.

A web service implementation class should create a single producer template, 
and reuse it.  Alternatively, there's something wild and wooly going on that's 
preventing the template from being garbage collected.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to