[ https://issues.apache.org/jira/browse/WW-4900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16289262#comment-16289262 ]
Hudson commented on WW-4900: ---------------------------- FAILURE: Integrated in Jenkins build Struts-master-JDK7 #70 (See [https://builds.apache.org/job/Struts-master-JDK7/70/]) WW-4900 Makes BackgroundProcess transient (yasserzamani: rev dda3facc265d4e1c3b1c60fa2bcc4240953ee35c) * (add) core/src/test/java/org/apache/struts2/interceptor/BackgroundProcessTest.java * (edit) core/src/test/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptorTest.java * (edit) core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java * (edit) core/src/main/java/org/apache/struts2/interceptor/BackgroundProcess.java WW-4900 Reverts BackgroundProcess access modifiers (yasserzamani: rev 6b131550a649106766f45c83279b036544afc58c) * (edit) core/src/main/java/org/apache/struts2/interceptor/BackgroundProcess.java WW-4900 Fixes BackgroundProcessTest via synchronization (yasserzamani: rev a8ecd9bd297670b048dd3d12ee7211d4984db664) * (edit) core/src/test/java/org/apache/struts2/interceptor/BackgroundProcessTest.java > NotSerializableException: > com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector when using > ExecuteAndWait interceptor > -------------------------------------------------------------------------------------------------------------------------------- > > Key: WW-4900 > URL: https://issues.apache.org/jira/browse/WW-4900 > Project: Struts 2 > Issue Type: Bug > Affects Versions: 2.5.14.1 > Reporter: Erica Kane > Assignee: Yasser Zamani > Fix For: 2.5.15 > > > We are running Struts 2.5.14.1 and working on externalizing Tomcat session > state. This requires Serializable sessions. However, our Action with the > ExecuteAndWait interceptor fails. Since our original code was quite complex I > wrote a simpler one below which demonstrates the exact same behavior. > The simple action is shown here: > {noformat} > package com.sentrylink.web.actions; > import java.util.concurrent.TimeUnit; > import org.apache.struts2.convention.annotation.InterceptorRef; > import org.apache.struts2.convention.annotation.InterceptorRefs; > import org.apache.struts2.convention.annotation.Result; > import org.apache.struts2.convention.annotation.Results; > import com.opensymphony.xwork2.ActionSupport; > @SuppressWarnings("serial") > @Results({ > @Result(name="wait", location="/"), > @Result(name=ActionSupport.SUCCESS, > location="/WEB-INF/content/messagePage.jsp"), > }) > @InterceptorRefs({ > @InterceptorRef("webStack"), > @InterceptorRef("execAndWait") > }) > public class TestExecuteAndWait extends ActionSupport { > public String execute() throws Exception { > TimeUnit.SECONDS.sleep(10); > return SUCCESS; > } > } > {noformat} > Running this gives > {noformat} > WARNING: Cannot serialize session attribute __execWaittest-execute-and-wait > for session 74CDB9F8D00BBC697030AFC6978E94F6 > java.io.NotSerializableException: > com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector > {noformat} > Removing the ExecuteAndWait interceptor fixes the issue. > According to [~yasser.zamani] in WW-4873 : I reviewed > {{ExecuteAndWaitInterceptor}} and seems has this bug when session goes to > being serialized in middle of an background process. -- This message was sent by Atlassian JIRA (v6.4.14#64029)