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.