Good morning. After upgrading to 7.0.29, one of my larger webapps could no longer be deployed due to "OutOfMemoryError". As far as I know, this is related to the new feature of annotation scanning which was enabled in v7.0.29 (see the stack trace below).
Have anyone else experienced the same issue? This new behaviour can supposedly be turned off by setting 'metadata-complete="true"' in 'web.xml', however that seems not be working as intended. Temporarily I can solve it by increasing memory for 7.0.29, but to me this is still a bug considering it works fine in 7.0.28. :) Following is the stack trace, system, java version, command line, the list of JAR-files from /lib and head of 'web.xml'. Thanks. -------------------- SEVERE: Error waiting for multi-thread deployment of WAR files to complete java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252) at java.util.concurrent.FutureTask.get(FutureTask.java:111) at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:752) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:472) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1413) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:313) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:401) at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:346) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1140) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:785) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.OutOfMemoryError: Java heap space at java.io.DataInputStream.readUTF(DataInputStream.java:661) at java.io.DataInputStream.readUTF(DataInputStream.java:564) at org.apache.tomcat.util.bcel.classfile.ConstantUtf8.<init>(ConstantUtf8.java:48) at org.apache.tomcat.util.bcel.classfile.Constant.readConstant(Constant.java:129) at org.apache.tomcat.util.bcel.classfile.ConstantPool.<init>(ConstantPool.java:60) at org.apache.tomcat.util.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:209) at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:119) at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2066) at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1942) at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1908) at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1893) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1296) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:855) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:346) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5173) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:963) at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1600) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ... 5 more -------------------- Linux mybox 3.4.6-2.fc17.i686 #1 SMP Thu Jul 19 22:15:33 UTC 2012 i686 i686 i386 GNU/Linux -------------------- java version "1.7.0_05" Java(TM) SE Runtime Environment (build 1.7.0_05-b05) Java HotSpot(TM) Client VM (build 23.1-b03, mixed mode) -------------------- jsvc.exec -jvm server -cp /opt/apache-tomcat/bin/bootstrap.jar:/opt/apache-tomcat/bin/tomcat-juli.jar -java-home /opt/jdk -user tomcat -outfile /var/lib/apache-tomcat/logs/catalina.log -errfile &1 -pidfile /var/run/apache-tomcat.pid -Dcatalina.home=/opt/apache-tomcat -Dcatalina.base=/var/lib/apache-tomcat -Djava.endorsed.dirs=/opt/apache-tomcat/common/endorsed -Djava.io.tmpdir=/var/lib/apache-tomcat/temp -Djava.net.preferIPv4Stack=true -Xms16m -Xmx256m -XX:PermSize=16m -XX:MaxPermSize=128m -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/apache-tomcat/conf/logging.properties org.apache.catalina.startup.Bootstrap -------------------- activation-1.1.jar aopalliance-1.0.jar asm-3.3.1.jar aspectjrt-1.6.12.jar bcprov-jdk14-1.47.jar bval-core-0.4.jar bval-jsr303-0.4.jar cglib-2.2.2.jar com.ibm.icu_4.4.2.v20110823-3.7.2.jar com.lowagie.text_2.1.7.v201004222200-3.7.2.jar commonj.sdo-2.1.1.v201112051852.jar commons-beanutils-1.8.3.jar commons-beanutils-core-1.8.3.jar commons-cli-1.0-3.7.2.jar commons-codec-1.6.jar commons-dbcp-1.4.jar commons-lang-2.5.jar commons-lang3-3.1.jar commons-logging-1.1.1.jar commons-pool-1.5.4.jar derby-3.7.2.jar dozer-5.3.2.jar eclipselink-2.4.0.jar flute-3.7.2.jar hamcrest-core-1.1.jar hsqldb-2.2.8.jar httpclient-4.2.1.jar httpcore-4.2.1.jar itextpdf-5.3.0.jar javax.persistence-2.0.0.jar javax.wsdl_1.5.1.v201012040544-3.7.2.jar javax.ws.rs-api-2.0-m09.jar jcl-over-slf4j-1.6.4.jar joda-time-2.1.jar js-3.7.2.jar jstl-1.2.jar jtds-1.2.4.jar jul-to-slf4j-1.6.4.jar junit-dep-4.8.2.jar ldap-authentication-1.0.1-SNAPSHOT.jar log4j-1.2.16.jar mail-1.4.5.jar org.apache.batik.bridge_1.6.0.v201011041432-3.7.2.jar org.apache.batik.css_1.6.0.v201011041432-3.7.2.jar org.apache.batik.dom_1.6.0.v201011041432-3.7.2.jar org.apache.batik.dom.svg_1.6.0.v201011041432-3.7.2.jar org.apache.batik.ext.awt_1.6.0.v201011041432-3.7.2.jar org.apache.batik.parser_1.6.0.v201011041432-3.7.2.jar org.apache.batik.pdf_1.6.0.v201105071520-3.7.2.jar org.apache.batik.svggen_1.6.0.v201011041432-3.7.2.jar org.apache.batik.transcoder_1.6.0.v201011041432-3.7.2.jar org.apache.batik.util_1.6.0.v201011041432-3.7.2.jar org.apache.batik.util.gui_1.6.0.v201011041432-3.7.2.jar org.apache.batik.xml_1.6.0.v201011041432-3.7.2.jar org.apache.commons.codec_1.3.0.v201101211617-3.7.2.jar org.apache.xerces_2.9.0.v201101211617-3.7.2.jar org.apache.xml.resolver_1.2.0.v201005080400-3.7.2.jar org.apache.xml.serializer_2.7.1.v201005080400-3.7.2.jar org.eclipse.birt.runtime_3.7.2.v20120214-1408-3.7.2.jar org.eclipse.core.contenttype_3.4.100.v20110423-0524-3.7.2.jar org.eclipse.core.expressions_3.4.300.v20110228-3.7.2.jar org.eclipse.core.filesystem_1.3.100.v20110423-0524-3.7.2.jar org.eclipse.core.jobs_3.5.101.v20120113-1953-3.7.2.jar org.eclipse.core.resources_3.7.100.v20110510-0712-3.7.2.jar org.eclipse.core.resources_3.7.101.v20120125-1505-3.7.2.jar org.eclipse.core.runtime_3.7.0.v20110110-3.7.2.jar org.eclipse.datatools.connectivity_1.2.4.v201202041105-3.7.2.jar org.eclipse.datatools.connectivity.apache.derby_1.0.102.v201107221459-3.7.2.jar org.eclipse.datatools.connectivity.apache.derby.dbdefinition_1.0.2.v201107221459-3.7.2.jar org.eclipse.datatools.connectivity.console.profile_1.0.10.v201109250955-3.7.2.jar org.eclipse.datatools.connectivity.dbdefinition.genericJDBC_1.0.1.v201107221459-3.7.2.jar org.eclipse.datatools.connectivity.db.generic_1.0.1.v201107221459-3.7.2.jar org.eclipse.datatools.connectivity.oda_3.3.3.v201110130935-3.7.2.jar org.eclipse.datatools.connectivity.oda.consumer_3.2.5.v201109151100-3.7.2.jar org.eclipse.datatools.connectivity.oda.design_3.3.4.v201109211529-3.7.2.jar org.eclipse.datatools.connectivity.oda.flatfile_3.1.2.v201112081200-3.7.2.jar org.eclipse.datatools.connectivity.oda.profile_3.2.7.v201112290953-3.7.2.jar org.eclipse.datatools.connectivity.sqm.core_1.2.4.v201201131116-3.7.2.jar org.eclipse.datatools.enablement.hsqldb_1.0.0.v201107221502-3.7.2.jar org.eclipse.datatools.enablement.hsqldb.dbdefinition_1.0.0.v201107221502-3.7.2.jar org.eclipse.datatools.enablement.ibm.db2.luw_1.0.2.v201107221502-3.7.2.jar org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition_1.0.4.v201107221502-3.7.2.jar org.eclipse.datatools.enablement.ibm.informix_1.0.1.v201107221502-3.7.2.jar org.eclipse.datatools.enablement.ibm.informix.dbdefinition_1.0.4.v201107221502-3.7.2.jar org.eclipse.datatools.enablement.msft.sqlserver_1.0.1.v201107221504-3.7.2.jar org.eclipse.datatools.enablement.msft.sqlserver.dbdefinition_1.0.1.v201201240349-3.7.2.jar org.eclipse.datatools.enablement.mysql_1.0.2.v201109022323-3.7.2.jar org.eclipse.datatools.enablement.mysql.dbdefinition_1.0.4.v201109022331-3.7.2.jar org.eclipse.datatools.enablement.oda.ws_1.2.3.v201112061438-3.7.2.jar org.eclipse.datatools.enablement.oda.xml_1.2.3.v201112061438-3.7.2.jar org.eclipse.datatools.enablement.oracle_1.0.0.v201107221506-3.7.2.jar org.eclipse.datatools.enablement.oracle.dbdefinition_1.0.102.v201107221506-3.7.2.jar org.eclipse.datatools.enablement.postgresql_1.1.0.v201110070445-3.7.2.jar org.eclipse.datatools.enablement.postgresql.dbdefinition_1.0.2.v201110070445-3.7.2.jar org.eclipse.datatools.modelbase.dbdefinition_1.0.2.v201107221519-3.7.2.jar org.eclipse.datatools.modelbase.derby_1.0.0.v201107221519-3.7.2.jar org.eclipse.datatools.modelbase.sql_1.0.5.v201110151330-3.7.2.jar org.eclipse.datatools.modelbase.sql.query_1.1.2.v201110151315-3.7.2.jar org.eclipse.emf_2.6.0.v20120123-1045-3.7.2.jar org.eclipse.emf.common_2.7.0.v20120123-0926-3.7.2.jar org.eclipse.emf.ecore_2.7.0.v20120123-0926-3.7.2.jar org.eclipse.emf.ecore.change_2.7.1.v20120123-0926-3.7.2.jar org.eclipse.emf.ecore.xmi_2.7.0.v20120123-0926-3.7.2.jar org.eclipse.equinox.app_1.3.100.v20110321-3.7.2.jar org.eclipse.equinox.common_3.6.0.v20110523-3.7.2.jar org.eclipse.equinox.preferences_3.4.2.v20120111-2020-3.7.2.jar org.eclipse.equinox.registry_3.5.101.R37x_v20110810-1611-3.7.2.jar org.eclipse.osgi_3.7.2.v20120110-1415-3.7.2.jar org.eclipse.osgi.services_3.3.0.v20110513-3.7.2.jar org.eclipse.update.configurator_3.3.100.v20100512-3.7.2.jar org.w3c.css.sac_1.3.0.v200805290154-3.7.2.jar org.w3c.dom.smil_1.0.0.v200806040011-3.7.2.jar org.w3c.dom.svg_1.1.0.v201011041433-3.7.2.jar quartz-1.8.6.jar slf4j-api-1.6.4.jar slf4j-log4j12-1.6.4.jar spring-aop-3.1.2.RELEASE.jar spring-asm-3.1.2.RELEASE.jar spring-beans-3.1.2.RELEASE.jar spring-context-3.1.2.RELEASE.jar spring-context-support-3.1.2.RELEASE.jar spring-core-3.1.2.RELEASE.jar spring-data-commons-core-1.3.0.RELEASE.jar spring-data-jpa-1.1.0.RELEASE.jar spring-expression-3.1.2.RELEASE.jar spring-jdbc-3.1.2.RELEASE.jar spring-ldap-core-1.3.1.RELEASE.jar spring-ldap-core-tiger-1.3.1.RELEASE.jar spring-orm-3.1.2.RELEASE.jar spring-oxm-3.1.2.RELEASE.jar spring-security-acl-3.1.1.RELEASE.jar spring-security-config-3.1.1.RELEASE.jar spring-security-core-3.1.1.RELEASE.jar spring-security-ldap-3.1.1.RELEASE.jar spring-security-taglibs-3.1.1.RELEASE.jar spring-security-web-3.1.1.RELEASE.jar spring-tx-3.1.2.RELEASE.jar spring-web-3.1.2.RELEASE.jar spring-webmvc-3.1.2.RELEASE.jar spring-webmvc-portlet-3.1.2.RELEASE.jar stax-api-1.0.1.jar Tidy-3.7.2.jar validation-api-1.0.0.GA.jar xmlbeans-2.5.0.jar -------------------- <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" metadata-complete="true" version="2.5"> ... </web-app> // andreas