I have just spotted that this memory leak can be fixed by changing below
lines (in ConsumerProcessor)
boolean result = cont.suspend(suspentionTime);
exchange = exchanges.remove(exchange.getExchangeId());
if (!result) {
throw new Exception("Error sending exchange:
aborted");
}
to
boolean result = cont.suspend(suspentionTime);
exchange = exchanges.remove(exchange.getExchangeId());
if (!result) {
locks.remove(exchange.getExchangeId());
throw new Exception("Error sending exchange:
aborted");
}
locks map needs to be cleaned up (this is exactly done ine http:consumer).
Well, actually IMO method
org.apache.servicemix.http.processors.ConsumerProcessor.process(MessageExchange)
is not thread safe: continuation could be obtained there but when the method
enters synchronized block timeout could occur - so when exchanges map is
filled no one will pick it up.
--
View this message in context:
http://www.nabble.com/http-endpoint-issues-tp17562872p17588264.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.