[ https://issues.apache.org/jira/browse/WW-4105?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15990033#comment-15990033 ]
ASF GitHub Bot commented on WW-4105: ------------------------------------ Github user yasserzamani closed the pull request at: https://github.com/apache/struts/pull/133 > Struts2 raise java.lang.ClassCastException when Result type is chain > --------------------------------------------------------------------- > > Key: WW-4105 > URL: https://issues.apache.org/jira/browse/WW-4105 > Project: Struts 2 > Issue Type: Bug > Components: Core Interceptors > Affects Versions: 2.3.14.3 > Environment: tomcat6 struts2.3.* > Reporter: zhouyong > Fix For: 2.5.x > > Attachments: lib.zip.001, lib.zip.002, lib.zip.003, lib.zip.004, > lib.zip.005, lib.zip.006, lib.zip.007, lib.zip.008, struts2-debug.tar.gz, > test.zip, WW-4105.patch > > > java.lang.ClassCastException: A action cannot be cast to B action when A > chain to B. > ChainingInterceptor.java has a bug in intercept function when Result type is > chain. > Intercept function of ChainingInterceptor will change action member of > DefaultActionInvocation class. And invokeAction of DefaultActionInvocation > will fail in line 450. > My action class has a annotation. It is > org.springframework.transaction.annotation.Transactional. Action work good > if it has not org.springframework.transaction.annotation.Transactional > AtestAction.java: > {code:java} > package demo.action; > import org.apache.struts2.convention.annotation.Action; > import org.apache.struts2.convention.annotation.ParentPackage; > import org.apache.struts2.convention.annotation.Result; > import org.apache.struts2.convention.annotation.Results; > import org.springframework.context.annotation.Scope; > import org.springframework.stereotype.Service; > import org.springframework.transaction.annotation.Transactional; > @Transactional > @ParentPackage(value="swordlite") > @Service("AtestAction") > @Scope(value = "prototype") > @Results( { > @Result(name = "test", location = "testb", type = "chain", > params = { > "defineId", "${_defineId}", > "rp", "${_resultPage}"} > ) > }) > public class AtestAction { > @Action(value = "/testa") > public String run() throws Exception > { return "test"; } > } > BtestAction.java: > import org.apache.struts2.convention.annotation.Action; > import org.apache.struts2.convention.annotation.ParentPackage; > import org.apache.struts2.convention.annotation.Result; > import org.apache.struts2.convention.annotation.Results; > import org.springframework.context.annotation.Scope; > import org.springframework.stereotype.Service; > import org.springframework.transaction.annotation.Transactional; > @Transactional > @ParentPackage(value="swordlite") > @Service("BtestAction") > @Scope(value="prototype") > @Results({ > @Result(name="ok", location="/ok.jsp", type="dispatcher"), > }) > public class BtestAction { > @Action(value = "/testb") > public String run() throws Exception > { return "ok"; } > } > {code} > request: http://localhost:8080/test/testa.action > raise error: java.lang.ClassCastException: demo.action.AtestAction cannot be > cast to demo.action.BtestAction > spring config file: applicationContext.xml > {code:xml} > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:aop="http://www.springframework.org/schema/aop" > xmlns:tx="http://www.springframework.org/schema/tx" > xmlns:context="http://www.springframework.org/schema/context" > xmlns:util="http://www.springframework.org/schema/util" > xmlns="http://www.springframework.org/schema/p" > xsi:schemaLocation="http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-2.5.xsd > http://www.springframework.org/schema/aop > http://www.springframework.org/schema/aop/spring-aop-2.5.xsd > http://www.springframework.org/schema/tx > http://www.springframework.org/schema/tx/spring-tx-2.5.xsd > http://www.springframework.org/schema/context > http://www.springframework.org/schema/context/spring-context-2.5.xsd > http://www.springframework.org/schema/util > http://www.springframework.org/schema/util/spring-util-2.5.xsd"> > <context:component-scan base-package="..action,.**.spring" /> > <context:annotation-config /> > <aop:aspectj-autoproxy proxy-target-class="true"/> > <bean id="propertyConfigurer" > class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> > <property name="locations"> > <list> > <value>WEB-INF/config/db.properties</value> > <value>WEB-INF/config/hibernate.properties</value> > </list> > </property> > </bean> > <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" > destroy-method="close"> > <property name="driverClass" value="${database.working.driver}"></property> > <property name="jdbcUrl" value="${database.working.url}"></property> > <property name="user" value="${database.working.user}"></property> > <property name="password" value="${database.working.password}"></property> > <property name="maxPoolSize" value="${database.working.poolsize}"></property> > <property name="minPoolSize" value="1"></property> > <property name="initialPoolSize" value="1"></property> > <property name="maxIdleTime" value="20"></property> > </bean> > <bean id="sessionFactory" > class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> > <property name="dataSource" ref="dataSource" /> > <property name="packagesToScan"> > <list> > <value>.*.model</value> > </list> > </property> > <property name="hibernateProperties"> > <props> > <prop key="hibernate.dialect">${hibernate.dialect}</prop> > <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> > <prop key="hibernate.hbm2ddl.auto">none</prop> > </props> > </property> > </bean> > <bean id="transactionManager" > class="org.springframework.orm.hibernate3.HibernateTransactionManager"> > <property name="sessionFactory" ref="sessionFactory"></property> > </bean> > <tx:annotation-driven transaction-manager="transactionManager" /> > </beans> > {code} > struts config file: struts.xml > {code:xml} > <?xml version="1.0" encoding="UTF-8"?> > <!DOCTYPE struts PUBLIC > "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" > "http://struts.apache.org/dtds/struts-2.3.dtd"> > <struts> > <!-- <constant name="struts.objectFactory" value="spring" /> --> > <constant name="struts.objectFactory" > value="org.apache.struts2.spring.StrutsSpringObjectFactory" /> > <constant name="struts.devMode" value="false" /> > <package name="swordlite" namespace="/" extends="struts-default"> > <global-results> > <result name="myerror">/mrg/error.jsp</result> > <result name="re2Editpage">/mrg/re2Editpage.jsp</result> > </global-results> > <global-exception-mappings> > <exception-mapping result="re2Editpage" > exception="org.hibernate.PropertyValueException"></exception-mapping> > </global-exception-mappings> > </package> > </struts> > {code} > stacktrace: > {code:java} > java.lang.ClassCastException: demo.action.AtestAction cannot be cast to > demo.action.BtestAction > at > demo.action.BtestAction$$FastClassByCGLIB$$4c9ad5d.invoke(<generated>) > ~[com.springsource.net.sf.cglib-2.2.0.jar:na] > at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191) > ~[com.springsource.net.sf.cglib-2.2.0.jar:na] > at > org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:688) > ~[org.springframework.aop-3.0.5.RELEASE.jar:3.0.5.RELEASE] > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) > ~[org.springframework.aop-3.0.5.RELEASE.jar:3.0.5.RELEASE] > at > org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) > ~[org.springframework.transaction-3.0.5.RELEASE.jar:3.0.5.RELEASE] > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) > ~[org.springframework.aop-3.0.5.RELEASE.jar:3.0.5.RELEASE] > at > org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621) > ~[org.springframework.aop-3.0.5.RELEASE.jar:3.0.5.RELEASE] > at demo.action.BtestAction$$EnhancerByCGLIB$$cb3cf5cd.run(<generated>) > ~[com.springsource.net.sf.cglib-2.2.0.jar:na] > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > ~[na:1.6.0_29] > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > ~[na:1.6.0_29] > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > ~[na:1.6.0_29] > at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.6.0_29] > at > com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:289) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:252) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256) > ~[struts2-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) > ~[struts2-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:249) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:249) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73) > ~[struts2-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91) > ~[struts2-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252) > ~[struts2-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) > ~[struts2-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) > ~[struts2-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.ActionChainResult.execute(ActionChainResult.java:233) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:371) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:275) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256) > ~[struts2-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) > ~[struts2-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:249) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:249) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73) > ~[struts2-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91) > ~[struts2-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252) > ~[struts2-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) > ~[struts2-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246) > ~[xwork-core-2.3.14.3.jar:2.3.14.3] > at > org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) > ~[struts2-core-2.3.14.3.jar:2.3.14.3] > at > org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:546) > ~[struts2-core-2.3.14.3.jar:2.3.14.3] > at > org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:434) > [struts2-core-2.3.14.3.jar:2.3.14.3] > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > [catalina.jar:6.0.35] > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > [catalina.jar:6.0.35] > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > [catalina.jar:6.0.35] > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > [catalina.jar:6.0.35] > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) > [catalina.jar:6.0.35] > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > [catalina.jar:6.0.35] > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > [catalina.jar:6.0.35] > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) > [catalina.jar:6.0.35] > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) > [tomcat-coyote.jar:6.0.35] > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) > [tomcat-coyote.jar:6.0.35] > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) > [tomcat-coyote.jar:6.0.35] > at java.lang.Thread.run(Unknown Source) [na:1.6.0_29] > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)