[
https://issues.apache.org/jira/browse/OLINGO-754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14910169#comment-14910169
]
Michael Bolz commented on OLINGO-754:
-------------------------------------
Hi,
as workaround it should be possible the register a {{ServletContextListener}}
in the {{web.xml}}:
{code}
<listener>
<listener-class>org.apache.olingo.odata2.jpa.processor.ref.web.JPACleanUpListener</listener-class>
</listener>
{code}
Which calls the {{ODataJPAContextImpl.unsetContextInThreadLocal();}} after the
servlet context expires (get destroyed):
{code}
/**
*/
public class JPACleanUpListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) { }
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
ODataJPAContextImpl.unsetContextInThreadLocal();
}
}
{code}
Best Regards,
Michael
> MemoryLeak when using Olingo in Wildfly
> ---------------------------------------
>
> Key: OLINGO-754
> URL: https://issues.apache.org/jira/browse/OLINGO-754
> Project: Olingo
> Issue Type: Bug
> Components: odata2-jpa
> Affects Versions: V2 2.0.4
> Environment: java 8, wildfly 8.2, Linux
> Reporter: Manuel Blechschmidt
>
> The following code produces a memory leak in an application server:
> {code:title=org.apache.olingo.odata2.jpa.processor.core.ODataJPAContextImpl}
> @Override
> public void setODataContext(final ODataContext ctx) {
> odataContext = ctx;
> // This produces a memory leak on wildfly
> setContextInThreadLocal(odataContext);
> }
> {code}
> I removed the setContextInThreadLocal and it worked afterwards. I searched
> the whole code how this variable is normaly removed but was not able to find
> the clean way to solve this problem.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)