[ https://issues.apache.org/jira/browse/CXF-7026?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Freeman Fang reassigned CXF-7026: --------------------------------- Assignee: Freeman Fang > o.a.c.transport.http.osgi.HttpServiceTrackerCust service leak > ------------------------------------------------------------- > > Key: CXF-7026 > URL: https://issues.apache.org/jira/browse/CXF-7026 > Project: CXF > Issue Type: Bug > Components: OSGi > Affects Versions: 3.1.7 > Reporter: Grzegorz Grzybek > Assignee: Freeman Fang > > During memory leak search I saw some old registrations of > {{org.apache.cxf.transport.servlet.CXFNonSpringServlet}}. Here's GC root path: > {noformat} > this - value: > org.eclipse.jetty.server.ServerConnector$ServerConnectorManager #1 > <- _manager - class: org.eclipse.jetty.server.ServerConnector, value: > org.eclipse.jetty.server.ServerConnector$ServerConnectorManager #1 > <- [0] - class: java.lang.Object[], value: > org.eclipse.jetty.server.ServerConnector #1 > <- array - class: java.util.concurrent.CopyOnWriteArrayList, value: > java.lang.Object[] #17136 > <- _connectors - class: > org.ops4j.pax.web.service.jetty.internal.JettyServerWrapper, value: > java.util.concurrent.CopyOnWriteArrayList #521 > <- _server - class: > org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler, value: > org.ops4j.pax.web.service.jetty.internal.JettyServerWrapper #1 > <- _servletHandler - class: > org.eclipse.jetty.servlet.ServletHolder, value: > org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler #1 > <- this$0 - class: org.eclipse.jetty.servlet.ServletHolder$Config, > value: org.eclipse.jetty.servlet.ServletHolder #1 > <- config - class: > org.apache.cxf.transport.servlet.CXFNonSpringServlet, value: > org.eclipse.jetty.servlet.ServletHolder$Config #1 > <- servlet - class: > org.apache.cxf.transport.http.osgi.ServletExporter, value: > org.apache.cxf.transport.servlet.CXFNonSpringServlet #1 > <- m_svcObj - class: > org.apache.felix.framework.ServiceRegistrationImpl, value: > org.apache.cxf.transport.http.osgi.ServletExporter #1 > <- [2] - class: org.osgi.framework.ServiceRegistration[], > value: org.apache.felix.framework.ServiceRegistrationImpl #311 > <- value - class: java.util.HashMap$Node, value: > org.osgi.framework.ServiceRegistration[] #87 > <- [179] - class: java.util.HashMap$Node[], value: > java.util.HashMap$Node #47874 > <- table - class: java.util.HashMap, value: > java.util.HashMap$Node[] #9801 > <- m - class: java.util.Collections$SynchronizedMap, > value: java.util.HashMap #84 > <- m_regsMap - class: > org.apache.felix.framework.ServiceRegistry, value: > java.util.Collections$SynchronizedMap #7 > <- m_registry (Java frame) - class: > org.apache.felix.framework.FrameworkStartLevelImpl, value: > org.apache.felix.framework.ServiceRegistry #1 > {noformat} > which shows that CXF servlet prevents from freeing previous instance of > {{org.eclipse.jetty.server.ServerConnector}}. > After some debugging, I've found that > {{org.apache.cxf.transport.http.osgi.HttpServiceTrackerCust#removedService()}} > isn't called - why? because > {{org.apache.cxf.transport.http.osgi.HttpServiceTrackerCust#addingService()}} > returns {{null}}... -- This message was sent by Atlassian JIRA (v6.3.4#6332)