[
https://issues.apache.org/jira/browse/CXF-2772?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniel Kulp resolved CXF-2772.
------------------------------
Resolution: Fixed
Fix Version/s: (was: NeedMoreInfo)
2.4
Assignee: Daniel Kulp
Marking this resolved. I believe it's fixed, but a request for an updated
test run has gone unanswered for over a month.
> 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
> Assignee: Daniel Kulp
> Labels: TomcatWS
> Fix For: 2.4
>
> 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.
For more information on JIRA, see: http://www.atlassian.com/software/jira