[ 
https://issues.apache.org/jira/browse/CXF-2772?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aditya Gujrathi updated CXF-2772:
---------------------------------

    Description: 
I am deploying 5 WAR files in my Tomcat server. They together expose multiple 
endpoints (60+), each of which publish a simple WSDL.

When the server is started, performance with many concurrent service calls 
degrades and memory consumption increases steadily, ultimately leading to an 
OutOfMemoryException.

In a simple test it showed that simply displaying the service endpoints exposed 
WSDL in the browser is sufficient to trigger the OutOfMemoryError. Earlier, our 
application was using JAXWS and it used to work fine.

Screenshot using jVisualVM is attached. Following is the exception stacktrace:

{code}
WARNING: Application 
{http://schemas.xmlsoap.org/ws/2004/08/eventing}ws-eventing-service#{http://schemas.xmlsoap.org/ws/2004/08/eventing}SubscribeOp
 has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Java heap space
        at 
org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:155)
        at 
org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.createFault(AbstractJAXWSMethodInvoker.java:85)
        at 
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:121)
        at 
org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:60)
        at 
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75)
        at 
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at 
org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
        at 
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
        at 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
        at 
org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:98)
        at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:406)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:178)
        at 
org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:142)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.OutOfMemoryError: Java heap space
        at java.util.Arrays.copyOfRange(Arrays.java:3209)
        at java.lang.String.<init>(String.java:215)
        at java.lang.String.copyValueOf(String.java:2880)
        at sun.net.www.MessageHeader.mergeHeader(MessageHeader.java:435)
        at sun.net.www.MessageHeader.parseHeader(MessageHeader.java:367)
        at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:699)
        at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
        at 
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1072)
        at 
java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2110)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2087)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1985)
        at 
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
        at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:640)
        at 
org.apache.cxf.transport.TransportURIResolver.resolve(TransportURIResolver.java:112)
        at 
org.apache.cxf.catalog.CatalogXmlSchemaURIResolver.resolveEntity(CatalogXmlSchemaURIResolver.java:78)
        at 
org.apache.ws.commons.schema.SchemaBuilder.resolveXmlSchema(SchemaBuilder.java:1872)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleInclude(SchemaBuilder.java:1653)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:219)
        at 
org.apache.ws.commons.schema.SchemaBuilder.build(SchemaBuilder.java:121)
        at 
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:509)
        at 
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:382)
        at 
org.apache.ws.commons.schema.SchemaBuilder.resolveXmlSchema(SchemaBuilder.java:1901)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleImport(SchemaBuilder.java:1615)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:224)
        at 
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:523)
        at 
org.apache.cxf.common.xmlschema.SchemaCollection.read(SchemaCollection.java:182)
        at org.apache.cxf.wsdl11.SchemaUtil.extractSchema(SchemaUtil.java:133)
        at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:81)
        at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:65)
        at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:60)
        at 
org.apache.cxf.wsdl11.WSDLServiceBuilder.getSchemas(WSDLServiceBuilder.java:357)
{code}

  was:
I am deploying 5 WAR files in my Tomcat server. They together expose multiple 
endpoints (60+), each of which publish a simple WSDL.

When the server is started, performance with many concurrent service calls 
degrades and memory consumption increases steadily, ultimately leading to an 
OutOfMemoryException.

In a simple test it showed that simply displaying the service endpoints exposed 
WSDL in the browser is sufficient to trigger the OutOfMemoryError. Earlier, our 
application was using JAXWS and it used to work fine.

I will attach some logs\screenshots using a JVM memory analyzer tool soon so as 
to provide more details.


> CLONE -OutOfMemoryError with many service endpoints
> ---------------------------------------------------
>
>                 Key: CXF-2772
>                 URL: https://issues.apache.org/jira/browse/CXF-2772
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.2.6
>         Environment: Windows XP, Sun JDK 1.6, Tomcat 6.0.20
>            Reporter: Aditya Gujrathi
>         Attachments: VisualVM-ServerStartup1.jpg
>
>
> I am deploying 5 WAR files in my Tomcat server. They together expose multiple 
> endpoints (60+), each of which publish a simple WSDL.
> When the server is started, performance with many concurrent service calls 
> degrades and memory consumption increases steadily, ultimately leading to an 
> OutOfMemoryException.
> In a simple test it showed that simply displaying the service endpoints 
> exposed WSDL in the browser is sufficient to trigger the OutOfMemoryError. 
> Earlier, our application was using JAXWS and it used to work fine.
> Screenshot using jVisualVM is attached. Following is the exception stacktrace:
> {code}
> WARNING: Application 
> {http://schemas.xmlsoap.org/ws/2004/08/eventing}ws-eventing-service#{http://schemas.xmlsoap.org/ws/2004/08/eventing}SubscribeOp
>  has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Java heap space
>       at 
> org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:155)
>       at 
> org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.createFault(AbstractJAXWSMethodInvoker.java:85)
>       at 
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:121)
>       at 
> org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:60)
>       at 
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75)
>       at 
> org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>       at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>       at 
> org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
>       at 
> org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>       at 
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:109)
>       at 
> org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:98)
>       at 
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:406)
>       at 
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:178)
>       at 
> org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:142)
>       at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)
>       at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>       at 
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
>       at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
>       at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>       at 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
>       at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.OutOfMemoryError: Java heap space
>       at java.util.Arrays.copyOfRange(Arrays.java:3209)
>       at java.lang.String.<init>(String.java:215)
>       at java.lang.String.copyValueOf(String.java:2880)
>       at sun.net.www.MessageHeader.mergeHeader(MessageHeader.java:435)
>       at sun.net.www.MessageHeader.parseHeader(MessageHeader.java:367)
>       at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:699)
>       at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
>       at 
> sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1072)
>       at 
> java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2110)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2087)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1985)
>       at 
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>       at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:640)
>       at 
> org.apache.cxf.transport.TransportURIResolver.resolve(TransportURIResolver.java:112)
>       at 
> org.apache.cxf.catalog.CatalogXmlSchemaURIResolver.resolveEntity(CatalogXmlSchemaURIResolver.java:78)
>       at 
> org.apache.ws.commons.schema.SchemaBuilder.resolveXmlSchema(SchemaBuilder.java:1872)
>       at 
> org.apache.ws.commons.schema.SchemaBuilder.handleInclude(SchemaBuilder.java:1653)
>       at 
> org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:219)
>       at 
> org.apache.ws.commons.schema.SchemaBuilder.build(SchemaBuilder.java:121)
>       at 
> org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:509)
>       at 
> org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:382)
>       at 
> org.apache.ws.commons.schema.SchemaBuilder.resolveXmlSchema(SchemaBuilder.java:1901)
>       at 
> org.apache.ws.commons.schema.SchemaBuilder.handleImport(SchemaBuilder.java:1615)
>       at 
> org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:224)
>       at 
> org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:523)
>       at 
> org.apache.cxf.common.xmlschema.SchemaCollection.read(SchemaCollection.java:182)
>       at org.apache.cxf.wsdl11.SchemaUtil.extractSchema(SchemaUtil.java:133)
>       at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:81)
>       at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:65)
>       at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:60)
>       at 
> org.apache.cxf.wsdl11.WSDLServiceBuilder.getSchemas(WSDLServiceBuilder.java:357)
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to