I see that the asm classes are in the xwork-core-2.1.4.jar I don't pull in asm manually, maven pulls it in transitively. The 2.1.4 parent pom for xwork has a dependency section that is inherited, so asm-3.1 is a dependency of xwork-core and is being pulled into my web-inf/lib by maven.
See http://repo2.maven.org/maven2/com/opensymphony/xwork-parent/2.1.4/xwork-parent-2.1.4.pom I'll try and manually exclude it (ugh, i hate having to do that but it might work). --tom On Thu, Jun 25, 2009 at 11:50 AM, Musachy Barroso<musa...@gmail.com> wrote: > xwork jarjars (is that a word?), asm into the xwork jar, you don't > need to include asm as a dependency for xwork. > > musachy > > On Thu, Jun 25, 2009 at 8:47 AM, Tomislav > Stojcevich<stojcevi...@gmail.com> wrote: >> From the maven central repo: >> http://repo2.maven.org/maven2/org/springframework/spring-core/2.5.6.SEC01/spring-core-2.5.6.SEC01.pom, >> it's showing 2.2.3 >> The version of spring that struts 2.1.7 depends on is 2.5.6 which also >> shows asm version of 2.2.3. >> >> But struts-core depends on xworx 2.1.4 which depends on asm 3.1, >> tha'ts why I have 3.1 instead of 2.2.3. >> >> This is a problem. >> >> --tom >> >> >> >> On Thu, Jun 25, 2009 at 11:40 AM, Musachy Barroso<musa...@gmail.com> wrote: >>> find out what version of ASM is distributed with the version of spring >>> that you have. >>> >>> On Thu, Jun 25, 2009 at 8:30 AM, Tomislav >>> Stojcevich<stojcevi...@gmail.com> wrote: >>>> That's possible I guess. The versions I'm using all came from the >>>> maven central repo except for the struts which came from the staging >>>> repo. >>>> I am running java 1.6. >>>> >>>> Looking in the manifest of each of the asm jars which is the best why >>>> that I know how to tell, it says Created-By: 1.6.0_02-b05 (Sun >>>> Microsystems Inc.) >>>> For the struts jars it has: Created-By: 1.6.0_13 (Sun Microsystems >>>> Inc.) and Build-Jdk: 1.6.0_13 >>>> For spring.jar is has Created-By: 10.0-b23 (Sun Microsystems Inc.) >>>> that's it but since it's spring, it's probably compiled with -target >>>> of java 1.2 which should still work under 1.6. >>>> >>>> >>>> >>>> --tom >>>> >>>> >>>> >>>> On Thu, Jun 25, 2009 at 11:15 AM, Musachy Barroso<musa...@gmail.com> wrote: >>>>> let me be captain obvious, you are using a version of ASM that is not >>>>> binary compatible with the spring jars, I think. >>>>> >>>>> musachy >>>>> >>>>> On Thu, Jun 25, 2009 at 7:46 AM, Tomislav >>>>> Stojcevich<stojcevi...@gmail.com> wrote: >>>>>> Asking on dev list since it may be a problem with the staged libraries >>>>>> and dependencies. >>>>>> >>>>>> Using 2.1.7 from maven staging repository. >>>>>> >>>>>> War packaged inside ear. Ear deployed to Weblogic 10.3 on windoze. >>>>>> Java 1.6.0_13-b03 >>>>>> >>>>>> >>>>>> <prefer-web-inf-classes>false</prefer-web-inf-classes> >>>>>> >>>>>> >>>>>> <prefer-application-packages> >>>>>> <package-name>antlr.*</package-name> >>>>>> <package-name>com.opensymphony.*</package-name> >>>>>> <package-name>ognl.*</package-name> >>>>>> <package-name>org.apache.*</package-name> >>>>>> <package-name>org.objectweb.*</package-name> >>>>>> <package-name>org.springframework.*</package-name> >>>>>> <package-name>net.sf.*</package-name> >>>>>> </prefer-application-packages> >>>>>> >>>>>> >>>>>> No jars in ear/lib. >>>>>> Jars in web-inf/lib: >>>>>> >>>>>> >>>>>> 3/08/2007 05:00 PM 1,104,500 amclientsdk-1.3.1_06.jar >>>>>> 01/29/2007 12:06 PM 443,432 antlr-2.7.6.jar >>>>>> 06/05/2008 09:49 AM 43,033 asm-3.1.jar >>>>>> 08/13/2008 04:14 PM 32,693 asm-commons-3.1.jar >>>>>> 08/13/2008 04:14 PM 21,879 asm-tree-3.1.jar >>>>>> 01/29/2007 11:18 AM 282,338 cglib-2.1_3.jar >>>>>> 06/12/2008 12:10 PM 531,557 collections-generic-4.01.jar >>>>>> 09/18/2007 11:55 AM 188,671 commons-beanutils-1.7.0.jar >>>>>> 01/15/2009 04:52 PM 168,760 commons-beanutils-core-1.7.0.jar >>>>>> 05/15/2009 10:10 AM 18,874 commons-codec-1.1.jar >>>>>> 06/12/2008 11:08 AM 575,389 commons-collections-3.2.1.jar >>>>>> 12/03/2007 12:23 PM 271,849 commons-configuration-1.5.jar >>>>>> 03/27/2007 11:11 AM 143,602 commons-digester-1.8.jar >>>>>> 05/27/2008 11:34 AM 57,779 commons-fileupload-1.2.1.jar >>>>>> 05/27/2008 11:34 AM 87,776 commons-io-1.3.2.jar >>>>>> 04/02/2008 04:07 PM 261,809 commons-lang-2.4.jar >>>>>> 01/29/2007 12:42 PM 138,956 commons-validator-1.3.1.jar >>>>>> 02/27/2007 10:37 AM 189,284 concurrent-1.3.4.jar >>>>>> 06/12/2009 01:14 PM 297,130 cxf-api-2.2.2.jar >>>>>> 06/04/2009 01:15 PM 47,175 cxf-common-schemas-2.2.2.jar >>>>>> 06/04/2009 01:15 PM 281,974 cxf-common-utilities-2.2.2.jar >>>>>> 06/04/2009 01:15 PM 111,807 cxf-rt-bindings-soap-2.2.2.jar >>>>>> 06/04/2009 01:15 PM 37,548 cxf-rt-bindings-xml-2.2.2.jar >>>>>> 06/04/2009 01:15 PM 382,569 cxf-rt-core-2.2.2.jar >>>>>> 06/04/2009 01:15 PM 85,838 cxf-rt-databinding-jaxb-2.2.2.jar >>>>>> 06/04/2009 01:15 PM 294,627 cxf-rt-frontend-jaxws-2.2.2.jar >>>>>> 06/04/2009 01:15 PM 75,886 cxf-rt-frontend-simple-2.2.2.jar >>>>>> 06/04/2009 01:15 PM 174,926 cxf-rt-transports-http-2.2.2.jar >>>>>> 06/04/2009 01:15 PM 68,831 cxf-rt-ws-addr-2.2.2.jar >>>>>> 06/04/2009 01:15 PM 157,403 cxf-tools-common-2.2.2.jar >>>>>> 02/12/2009 04:49 PM 219,121 displaytag-1.2.jar >>>>>> 01/29/2007 11:16 AM 313,898 dom4j-1.6.1.jar >>>>>> 10/21/2008 02:15 PM 50,583 ejb3-persistence-1.0.2.GA.jar >>>>>> 05/08/2009 02:55 PM 291,570 FastInfoset-1.2.3.jar >>>>>> 07/14/2008 03:09 PM 870,292 freemarker-2.3.13.jar >>>>>> 09/02/2008 01:33 PM 34,126 >>>>>> geronimo-activation_1.1_spec-1.0.2.jar >>>>>> 05/08/2008 11:57 AM 12,452 >>>>>> geronimo-annotation_1.0_spec-1.1.1.jar >>>>>> 05/08/2009 02:55 PM 204,953 geronimo-javamail_1.4_spec-1.6.jar >>>>>> 09/02/2008 01:34 PM 47,817 geronimo-jaxws_2.1_spec-1.0.jar >>>>>> 05/08/2008 11:57 AM 28,804 >>>>>> geronimo-stax-api_1.0_spec-1.0.1.jar >>>>>> 05/08/2008 11:57 AM 14,611 >>>>>> geronimo-ws-metadata_2.0_spec-1.1.2.jar >>>>>> 10/21/2008 02:15 PM 279,714 hibernate-annotations-3.4.0.GA.jar >>>>>> 10/21/2008 02:15 PM 66,993 >>>>>> hibernate-commons-annotations-3.1.0.GA.jar >>>>>> 10/21/2008 04:19 PM 2,275,530 hibernate-core-3.3.1.GA.jar >>>>>> 10/21/2008 02:16 PM 119,292 >>>>>> hibernate-entitymanager-3.4.0.GA.jar >>>>>> 10/21/2008 02:16 PM 62,574 hibernate-validator-3.1.0.GA.jar >>>>>> 08/16/2007 01:20 PM 1,145,105 itext-1.3.jar >>>>>> 05/14/2009 04:08 PM 127,526 jasypt-1.5.jar >>>>>> 05/14/2008 12:59 PM 471,005 javassist-3.4.GA.jar >>>>>> 10/21/2008 11:23 AM 89,967 jaxb-api-2.1.jar >>>>>> 03/18/2009 09:33 AM 856,752 jaxb-impl-2.1.9.jar >>>>>> 06/18/2009 10:18 AM 17,097 jcl-over-slf4j-1.5.8.jar >>>>>> 02/19/2007 06:16 PM 20,682 jstl-1.1.2.jar >>>>>> 11/06/2007 04:56 PM 6,440 log-1.0.jar >>>>>> 01/29/2007 11:18 AM 367,444 log4j-1.2.14.jar >>>>>> 09/02/2008 01:33 PM 32,900 neethi-2.0.4.jar >>>>>> 09/14/2007 03:51 PM 168,081 ognl-2.6.11.jar >>>>>> 11/06/2007 04:53 PM 65,261 oro-2.0.8.jar >>>>>> 04/12/2007 11:04 PM 18,817 saaj-api-1.3.jar >>>>>> 10/24/2008 07:54 AM 278,145 saaj-impl-1.3.2.jar >>>>>> 06/11/2009 03:36 PM 278,281 serializer-2.7.1.jar >>>>>> 06/24/2009 12:38 PM 181,259 sitemesh-2.4.2.jar >>>>>> 06/18/2009 10:18 AM 23,445 slf4j-api-1.5.8.jar >>>>>> 06/18/2009 10:18 AM 9,679 slf4j-log4j12-1.5.8.jar >>>>>> 06/18/2009 10:28 AM 2,949,032 spring-2.5.6.SEC01.jar >>>>>> 06/30/2008 01:30 PM 194,972 spring-ldap-1.2.1.jar >>>>>> 06/30/2008 01:30 PM 4,073 spring-ldap-tiger-1.2.1.jar >>>>>> 10/31/2008 12:04 PM 69,947 spring-security-acl-2.0.4.jar >>>>>> 10/15/2008 09:48 AM 773,156 spring-security-core-2.0.4.jar >>>>>> 10/15/2008 09:48 AM 8,219 >>>>>> spring-security-core-tiger-2.0.4.jar >>>>>> 10/31/2008 12:04 PM 19,512 spring-security-taglibs-2.0.4.jar >>>>>> 06/18/2009 10:34 AM 402,348 spring-webmvc-2.5.6.SEC01.jar >>>>>> 12/04/2007 08:32 AM 26,215 sslext-1.2-0.jar >>>>>> 12/12/2007 03:37 PM 393,259 standard-1.1.2.jar >>>>>> 11/06/2007 04:56 PM 47,713 string-1.1.0.jar >>>>>> 06/24/2009 12:39 PM 39,262 >>>>>> struts2-config-browser-plugin-2.1.7.jar >>>>>> 06/24/2009 12:39 PM 66,253 >>>>>> struts2-convention-plugin-2.1.7.jar >>>>>> 06/24/2009 12:51 PM 752,028 struts2-core-2.1.7.jar >>>>>> 06/24/2009 12:39 PM 16,886 struts2-sitemesh-plugin-2.1.7.jar >>>>>> 06/24/2009 12:39 PM 9,580 struts2-spring-plugin-2.1.7.jar >>>>>> 06/02/2009 01:00 PM 20,478 tiles-api-2.0.7.jar >>>>>> 06/02/2009 01:00 PM 128,165 tiles-core-2.0.7.jar >>>>>> 06/02/2009 01:00 PM 43,241 tiles-jsp-2.0.7.jar >>>>>> 11/06/2007 04:53 PM 361,173 velocity-1.4.jar >>>>>> 11/30/2007 11:37 AM 392,124 velocity-1.5.jar >>>>>> 11/06/2007 04:53 PM 517,761 velocity-dep-1.4.jar >>>>>> 12/04/2007 08:32 AM 134,881 velocity-tools-1.3.jar >>>>>> 12/12/2007 02:32 PM 148,429 wsdl4j-1.6.2.jar >>>>>> 05/08/2009 02:56 PM 523,825 wstx-asl-3.2.8.jar >>>>>> 06/11/2009 03:36 PM 3,176,148 xalan-2.7.1.jar >>>>>> 06/11/2009 04:23 PM 1,229,125 xercesImpl-2.9.1.jar >>>>>> 01/07/2009 01:08 PM 194,354 xml-apis-1.3.04.jar >>>>>> 01/22/2008 05:09 PM 84,091 xml-resolver-1.2.jar >>>>>> 05/08/2009 02:55 PM 146,388 XmlSchema-1.4.5.jar >>>>>> 06/24/2009 12:38 PM 756,319 xwork-core-2.1.4.jar >>>>>> >>>>>> >>>>>> Full stacktrace: >>>>>> >>>>>> java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V >>>>>> at >>>>>> net.sf.cglib.core.DebuggingClassWriter.<init>(DebuggingClassWriter.java:47) >>>>>> at >>>>>> net.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter(DefaultGeneratorStrategy.java:30) >>>>>> at >>>>>> net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24) >>>>>> at >>>>>> net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216) >>>>>> at >>>>>> net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145) >>>>>> at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117) >>>>>> at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108) >>>>>> at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104) >>>>>> at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69) >>>>>> at >>>>>> org.springframework.aop.framework.Cglib2AopProxy.createEnhancer(Cglib2AopProxy.java:229) >>>>>> at >>>>>> org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:171) >>>>>> at >>>>>> org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110) >>>>>> at >>>>>> org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:490) >>>>>> at >>>>>> org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:365) >>>>>> at >>>>>> org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:325) >>>>>> at >>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:361) >>>>>> at >>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1344) >>>>>> at >>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) >>>>>> at >>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) >>>>>> at java.security.AccessController.doPrivileged(Native Method) >>>>>> at >>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) >>>>>> at >>>>>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) >>>>>> at >>>>>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) >>>>>> at >>>>>> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) >>>>>> at >>>>>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) >>>>>> at >>>>>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) >>>>>> at >>>>>> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) >>>>>> at >>>>>> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728) >>>>>> at >>>>>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380) >>>>>> at >>>>>> org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) >>>>>> at >>>>>> org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) >>>>>> at >>>>>> org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) >>>>>> at >>>>>> weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:465) >>>>>> at >>>>>> weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) >>>>>> at weblogic.security.service.SecurityManager.runAs(Unknown Source) >>>>>> at >>>>>> weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:175) >>>>>> at >>>>>> weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1784) >>>>>> at >>>>>> weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2999) >>>>>> at >>>>>> weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1371) >>>>>> at >>>>>> weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:468) >>>>>> at >>>>>> weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204) >>>>>> at >>>>>> weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37) >>>>>> at >>>>>> weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60) >>>>>> at >>>>>> weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200) >>>>>> at >>>>>> weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117) >>>>>> at >>>>>> weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204) >>>>>> at >>>>>> weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37) >>>>>> at >>>>>> weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60) >>>>>> at >>>>>> weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27) >>>>>> at >>>>>> weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635) >>>>>> at >>>>>> weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37) >>>>>> at >>>>>> weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212) >>>>>> at >>>>>> weblogic.application.internal.EarDeployment.activate(EarDeployment.java:16) >>>>>> at >>>>>> weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:162) >>>>>> at >>>>>> weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79) >>>>>> at >>>>>> weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:569) >>>>>> at >>>>>> weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:140) >>>>>> at >>>>>> weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:106) >>>>>> at >>>>>> weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:323) >>>>>> at >>>>>> weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:820) >>>>>> at >>>>>> weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1227) >>>>>> at >>>>>> weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:436) >>>>>> at >>>>>> weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:163) >>>>>> at >>>>>> weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:181) >>>>>> at >>>>>> weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:12) >>>>>> at >>>>>> weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:67) >>>>>> at >>>>>> weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516) >>>>>> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) >>>>>> at weblogic.work.ExecuteThread.run(ExecuteThread.java:173) >>>>>> >>>>>> --tom >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org >>>>>> For additional commands, e-mail: dev-h...@struts.apache.org >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> "Hey you! Would you help me to carry the stone?" Pink Floyd >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org >>>>> For additional commands, e-mail: dev-h...@struts.apache.org >>>>> >>>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org >>>> For additional commands, e-mail: dev-h...@struts.apache.org >>>> >>>> >>> >>> >>> >>> -- >>> "Hey you! Would you help me to carry the stone?" Pink Floyd >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org >>> For additional commands, e-mail: dev-h...@struts.apache.org >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org >> For additional commands, e-mail: dev-h...@struts.apache.org >> >> > > > > -- > "Hey you! Would you help me to carry the stone?" Pink Floyd > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org > For additional commands, e-mail: dev-h...@struts.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@struts.apache.org For additional commands, e-mail: dev-h...@struts.apache.org