Skip to content

Commit

Permalink
RESTEASY-2456: JVM Heap leak fix.
Browse files Browse the repository at this point in the history
  • Loading branch information
asoldano committed Feb 6, 2020
1 parent e7c675e commit 2a37c9b
Showing 1 changed file with 25 additions and 0 deletions.
Expand Up @@ -4,6 +4,7 @@
import java.io.IOException;
import java.lang.annotation.Annotation;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;
Expand All @@ -21,6 +22,8 @@
import org.jboss.resteasy.annotations.Stream;
import org.jboss.resteasy.core.ResourceMethodInvoker;
import org.jboss.resteasy.core.ServerResponseWriter;
import org.jboss.resteasy.plugins.server.servlet.Cleanable;
import org.jboss.resteasy.plugins.server.servlet.Cleanables;
import org.jboss.resteasy.resteasy_jaxrs.i18n.LogMessages;
import org.jboss.resteasy.resteasy_jaxrs.i18n.Messages;
import org.jboss.resteasy.specimpl.BuiltResponse;
Expand Down Expand Up @@ -85,6 +88,28 @@ public void close()
asyncResponse.complete();
}
}
clearContextData();
}
}

public void clearContextData()
{
Map<Class<?>, Object> map = ResteasyProviderFactory.getContextDataMap(false);
Cleanables cleanables = map != null ? (Cleanables) map.get(Cleanables.class) : null;
if (cleanables != null)
{
for (Iterator<Cleanable> it = cleanables.getCleanables().iterator(); it.hasNext(); )
{
try
{
it.next().clean();
}
catch(Exception e)
{
// Empty
}
}
ResteasyProviderFactory.clearContextData();
}
}

Expand Down

0 comments on commit 2a37c9b

Please sign in to comment.