[ 
https://issues.apache.org/jira/browse/WW-4105?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15979941#comment-15979941
 ] 

ASF GitHub Bot commented on WW-4105:
------------------------------------

Github user yasserzamani commented on the issue:

    https://github.com/apache/struts/pull/133
  
    > What do you mean by that? There is no bean name.
    
    Users may set `class` attribute to a 1.class name or to a 2.bean name. I 
meant I think it is not nice to use `class` attribute for, as you say, two 
different topics. Additionally, in second use, S2 cannot know the config time 
class of the action in any clean way.
    
    > every action
    
    Not every. `bean` attribute is and will be optional. Just actions which 
their `class` attribute value can not be resolved to config time class of the 
action by `ojectfactory.getInstanceClass`. For example `<action class=beanName` 
with `<bean name=beanName class=com....` and if this bean is proxified e.g. by 
AOP needs to be protected. This PR warns about these and continue.
    
    > It is not about the amount of changes
    
    Sorry I meant about docs, satisfying user with the new design or param and 
maintain it for log time.
    
    > Yet another is to compare action configuration class with the current 
instance toString / getClass().toString
    
    As I mentioned, when user uses `class` attribute as a bean name, S2 cannot 
know the action configuration class in any clean way.
    
    > You're mixing two very different topics together, security and chain 
configuration.
    
    No, I think about S2 borders. I'm trying to discuss that S2 should or 
should not know the config time class of the action and then do not operate 
outside of that border. Input Parameters, Chain and JSON are three example 
operations of S2 which I discovered at first place. Then I discovered `<s:form 
validate=true`. I see all of these are because S2 1.does not know and 2.do not 
consider config time class of the action.


> 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)

Reply via email to