[
https://issues.apache.org/activemq/browse/SM-1560?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Guillaume Nodet updated SM-1560:
--------------------------------
Description:
Memory leak caused by Request objects not being removed from "requests" Map in
all cases. Requests not removed results in memory leak.
Patch info:
{code}
### Eclipse Workspace Patch 1.0
#P servicemix-3.2
Index:
deployables/serviceengines/servicemix-bean/src/main/java/org/apache/servicemix/bean/BeanEndpoint.java
===================================================================
---
deployables/serviceengines/servicemix-bean/src/main/java/org/apache/servicemix/bean/BeanEndpoint.java
(revision 693290)
+++
deployables/serviceengines/servicemix-bean/src/main/java/org/apache/servicemix/bean/BeanEndpoint.java
(working copy)
@@ -236,13 +236,16 @@
} else {
// Exchange is finished
if (exchange.getStatus() == ExchangeStatus.DONE) {
+ requests.remove(corId);
return;
// Exchange has been aborted with an exception
} else if (exchange.getStatus() == ExchangeStatus.ERROR) {
+ requests.remove(corId);
return;
// Fault message
} else if (exchange.getFault() != null) {
// TODO: find a way to send it back to the bean before
setting the DONE status
+ requests.remove(corId);
done(exchange);
} else {
MethodInvocation invocation =
getMethodInvocationStrategy().createInvocation(
{code}
was:
Memory leak caused by Request objects not being removed from "requests" Map in
all cases. Requests not removed results in memory leak.
Patch info:
### Eclipse Workspace Patch 1.0
#P servicemix-3.2
Index:
deployables/serviceengines/servicemix-bean/src/main/java/org/apache/servicemix/bean/BeanEndpoint.java
===================================================================
---
deployables/serviceengines/servicemix-bean/src/main/java/org/apache/servicemix/bean/BeanEndpoint.java
(revision 693290)
+++
deployables/serviceengines/servicemix-bean/src/main/java/org/apache/servicemix/bean/BeanEndpoint.java
(working copy)
@@ -236,13 +236,16 @@
} else {
// Exchange is finished
if (exchange.getStatus() == ExchangeStatus.DONE) {
+ requests.remove(corId);
return;
// Exchange has been aborted with an exception
} else if (exchange.getStatus() == ExchangeStatus.ERROR) {
+ requests.remove(corId);
return;
// Fault message
} else if (exchange.getFault() != null) {
// TODO: find a way to send it back to the bean before
setting the DONE status
+ requests.remove(corId);
done(exchange);
} else {
MethodInvocation invocation =
getMethodInvocationStrategy().createInvocation(
> Items not removed from BeanEndpoint requests Map in all cases of request
> completion
> ------------------------------------------------------------------------------------
>
> Key: SM-1560
> URL: https://issues.apache.org/activemq/browse/SM-1560
> Project: ServiceMix
> Issue Type: Bug
> Components: servicemix-bean
> Affects Versions: 3.2.2
> Reporter: Craig Cobb
> Attachments: BeanEndpointPatch.txt
>
>
> Memory leak caused by Request objects not being removed from "requests" Map
> in all cases. Requests not removed results in memory leak.
> Patch info:
> {code}
> ### Eclipse Workspace Patch 1.0
> #P servicemix-3.2
> Index:
> deployables/serviceengines/servicemix-bean/src/main/java/org/apache/servicemix/bean/BeanEndpoint.java
> ===================================================================
> ---
> deployables/serviceengines/servicemix-bean/src/main/java/org/apache/servicemix/bean/BeanEndpoint.java
> (revision 693290)
> +++
> deployables/serviceengines/servicemix-bean/src/main/java/org/apache/servicemix/bean/BeanEndpoint.java
> (working copy)
> @@ -236,13 +236,16 @@
> } else {
> // Exchange is finished
> if (exchange.getStatus() == ExchangeStatus.DONE) {
> + requests.remove(corId);
> return;
> // Exchange has been aborted with an exception
> } else if (exchange.getStatus() == ExchangeStatus.ERROR) {
> + requests.remove(corId);
> return;
> // Fault message
> } else if (exchange.getFault() != null) {
> // TODO: find a way to send it back to the bean before
> setting the DONE status
> + requests.remove(corId);
> done(exchange);
> } else {
> MethodInvocation invocation =
> getMethodInvocationStrategy().createInvocation(
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.