You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Karl Palsson (JIRA)" <ji...@apache.org> on 2010/06/16 00:30:51 UTC

[jira] Created: (CAMEL-2818) DOCS:report incident tutorial has leaky code. (recreates producerTemplate())

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.


[jira] Resolved: (CAMEL-2818) DOCS:report incident tutorial has leaky code. (recreates producerTemplate())

Posted by "Claus Ibsen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/CAMEL-2818?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claus Ibsen resolved CAMEL-2818.
--------------------------------

         Assignee: Claus Ibsen
    Fix Version/s: 2.4.0
       Resolution: Fixed

Updated the docs

> 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
>            Assignee: Claus Ibsen
>            Priority: Trivial
>             Fix For: 2.4.0
>
>
> 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.