[ 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