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

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

Github user yasserzamani commented on the issue:

    https://github.com/apache/struts/pull/118
  
    @aleksandr-m , as an example, consider when action proxified with another 
technology like Spring and the user assumes that Struts2 only operates in it's 
borders, but currently, Struts2 does not know his borders about the action 
object e.g. it copies proxy information like advices when it chains actions, it 
generates json data from them in JSONResult, it copies ActionSupport's data 
when it chains which forced us to declare includes/excludes, In a security 
point of view, someone may successfully change proxy information of the action 
by an HTTP request with named parameters!
    
    All of these can be avoided if Struts2 know *user desired config time class 
of the action*. Struts2 knows this except when user gives actions up to any 
object factory like Spring or any other custom object factory. in such 
situation, Stuts2 looses information about config time class name of the 
action. yes, Struts2 has the object, but there is no any clean way to check if 
it's a proxy and unwrap it to target class!
    
    So, by attribute `bean`, the user specifies object, and by attribute 
`class`, specifies Struts2's borders i.e. Struts2 will exclude all subclasses 
above `class` and all superclasses under and including ActionSupport. I defined 
these as an improvement at 
[WW-4751](https://issues.apache.org/jira/browse/WW-4751).


> 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