From 4738d1d80228f86da880ed207294349566a260a2 Mon Sep 17 00:00:00 2001 From: Yasser Zamani Date: Wed, 13 Dec 2017 19:34:54 +0330 Subject: [PATCH] WW-4873 Makes ActionInvocation not serializable --- .../opensymphony/xwork2/ActionInvocation.java | 20 +------------ .../xwork2/DefaultActionInvocation.java | 23 --------------- .../xwork2/mock/MockActionInvocation.java | 8 ------ .../struts2/util/InvocationSessionStore.java | 4 +-- .../xwork2/DefaultActionInvocationTest.java | 28 ------------------- .../interceptor/TestActionInvocation.java | 8 ------ .../struts2/validators/DWRValidator.java | 1 - .../struts2/json/JSONInterceptorTest.java | 2 -- .../struts2/rest/RestActionInvocation.java | 2 -- .../OldDecorator2NewStrutsDecorator.java | 10 ------- 10 files changed, 3 insertions(+), 103 deletions(-) diff --git a/core/src/main/java/com/opensymphony/xwork2/ActionInvocation.java b/core/src/main/java/com/opensymphony/xwork2/ActionInvocation.java index 908349806..472f23ea7 100644 --- a/core/src/main/java/com/opensymphony/xwork2/ActionInvocation.java +++ b/core/src/main/java/com/opensymphony/xwork2/ActionInvocation.java @@ -21,8 +21,6 @@ package com.opensymphony.xwork2; import com.opensymphony.xwork2.interceptor.PreResultListener; import com.opensymphony.xwork2.util.ValueStack; -import java.io.Serializable; - /** * An {@link ActionInvocation} represents the execution state of an {@link Action}. It holds the Interceptors and the Action instance. * By repeated re-entrant execution of the invoke() method, initially by the {@link ActionProxy}, then by the Interceptors, the @@ -31,7 +29,7 @@ import java.io.Serializable; * @author Jason Carreira * @see com.opensymphony.xwork2.ActionProxy */ -public interface ActionInvocation extends Serializable { +public interface ActionInvocation { /** * Get the Action associated with this ActionInvocation. @@ -178,20 +176,4 @@ public interface ActionInvocation extends Serializable { void init(ActionProxy proxy) ; - /** - * Prepares instance of ActionInvocation to be serializable, - * which simple means removing all unserializable fields, eg. Container - * - * @return ActionInvocation which can be serialize (eg. into HttpSession) - */ - ActionInvocation serialize(); - - /** - * Performs opposite process to restore back ActionInvocation after deserialisation - * - * @param actionContext current {@link ActionContext} - * @return fully operational ActionInvocation - */ - ActionInvocation deserialize(ActionContext actionContext); - } diff --git a/core/src/main/java/com/opensymphony/xwork2/DefaultActionInvocation.java b/core/src/main/java/com/opensymphony/xwork2/DefaultActionInvocation.java index 5777007c1..6b039d680 100644 --- a/core/src/main/java/com/opensymphony/xwork2/DefaultActionInvocation.java +++ b/core/src/main/java/com/opensymphony/xwork2/DefaultActionInvocation.java @@ -500,27 +500,4 @@ public class DefaultActionInvocation implements ActionInvocation { } } - /** - * Version ready to be serialize - * - * @return instance without reference to {@link Container} - */ - public ActionInvocation serialize() { - DefaultActionInvocation that = this; - that.container = null; - return that; - } - - /** - * Restoring Container - * - * @param actionContext current {@link ActionContext} - * @return instance which can be used to invoke action - */ - public ActionInvocation deserialize(ActionContext actionContext) { - DefaultActionInvocation that = this; - that.container = actionContext.getContainer(); - return that; - } - } diff --git a/core/src/main/java/com/opensymphony/xwork2/mock/MockActionInvocation.java b/core/src/main/java/com/opensymphony/xwork2/mock/MockActionInvocation.java index 9053273dc..f37e8a6ae 100644 --- a/core/src/main/java/com/opensymphony/xwork2/mock/MockActionInvocation.java +++ b/core/src/main/java/com/opensymphony/xwork2/mock/MockActionInvocation.java @@ -124,12 +124,4 @@ public class MockActionInvocation implements ActionInvocation { public void init(ActionProxy proxy) { } - public ActionInvocation serialize() { - return this; - } - - public ActionInvocation deserialize(ActionContext actionContext) { - return this; - } - } diff --git a/core/src/main/java/org/apache/struts2/util/InvocationSessionStore.java b/core/src/main/java/org/apache/struts2/util/InvocationSessionStore.java index 5f1ad483d..6eaaf7366 100644 --- a/core/src/main/java/org/apache/struts2/util/InvocationSessionStore.java +++ b/core/src/main/java/org/apache/struts2/util/InvocationSessionStore.java @@ -59,7 +59,7 @@ public class InvocationSessionStore { ValueStack stack = invocationContext.invocation.getStack(); ActionContext.getContext().setValueStack(stack); - return invocationContext.invocation.deserialize(ActionContext.getContext()); + return invocationContext.invocation; } /** @@ -71,7 +71,7 @@ public class InvocationSessionStore { * @param invocation the action invocation */ public static void storeInvocation(String key, String token, ActionInvocation invocation) { - InvocationContext invocationContext = new InvocationContext(invocation.serialize(), token); + InvocationContext invocationContext = new InvocationContext(invocation, token); Map invocationMap = getInvocationMap(); invocationMap.put(key, invocationContext); setInvocationMap(invocationMap); diff --git a/core/src/test/java/com/opensymphony/xwork2/DefaultActionInvocationTest.java b/core/src/test/java/com/opensymphony/xwork2/DefaultActionInvocationTest.java index 334839082..89e5b9645 100644 --- a/core/src/test/java/com/opensymphony/xwork2/DefaultActionInvocationTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/DefaultActionInvocationTest.java @@ -75,34 +75,6 @@ public class DefaultActionInvocationTest extends XWorkTestCase { assertTrue(mockInterceptor3.isExecuted()); } - public void testSerialization() throws Exception { - // given - DefaultActionInvocation actionInvocation = new DefaultActionInvocation(new HashMap(), false); - actionInvocation.setContainer(new MockContainer()); - - // when - DefaultActionInvocation serializable = (DefaultActionInvocation) actionInvocation.serialize(); - - // then - assertNull(actionInvocation.container); - assertNull(serializable.container); - } - - public void testDeserialization() throws Exception { - // given - DefaultActionInvocation actionInvocation = new DefaultActionInvocation(new HashMap(), false); - MockContainer mockContainer = new MockContainer(); - ActionContext.getContext().setContainer(mockContainer); - - // when - DefaultActionInvocation deserializable = (DefaultActionInvocation) actionInvocation.deserialize(ActionContext.getContext()); - - // then - assertNotNull(actionInvocation.container); - assertNotNull(deserializable.container); - assertEquals(mockContainer, deserializable.container); - } - public void testInvokingExistingExecuteMethod() throws Exception { // given DefaultActionInvocation dai = new DefaultActionInvocation(new HashMap(), false) { diff --git a/core/src/test/java/com/opensymphony/xwork2/spring/interceptor/TestActionInvocation.java b/core/src/test/java/com/opensymphony/xwork2/spring/interceptor/TestActionInvocation.java index 34392fbd3..fc37d4a55 100644 --- a/core/src/test/java/com/opensymphony/xwork2/spring/interceptor/TestActionInvocation.java +++ b/core/src/test/java/com/opensymphony/xwork2/spring/interceptor/TestActionInvocation.java @@ -86,12 +86,4 @@ public class TestActionInvocation implements ActionInvocation { public void init(ActionProxy proxy) { } - public ActionInvocation serialize() { - return this; - } - - public ActionInvocation deserialize(ActionContext actionContext) { - return this; - } - } diff --git a/plugins/dwr/src/main/java/org/apache/struts2/validators/DWRValidator.java b/plugins/dwr/src/main/java/org/apache/struts2/validators/DWRValidator.java index 04c371afb..b77b59a6b 100644 --- a/plugins/dwr/src/main/java/org/apache/struts2/validators/DWRValidator.java +++ b/plugins/dwr/src/main/java/org/apache/struts2/validators/DWRValidator.java @@ -110,7 +110,6 @@ public class DWRValidator { } public static class ValidatorActionInvocation extends DefaultActionInvocation { - private static final long serialVersionUID = -7645433725470191275L; protected ValidatorActionInvocation(Map extraContext, boolean pushAction) throws Exception { super(extraContext, pushAction); diff --git a/plugins/json/src/test/java/org/apache/struts2/json/JSONInterceptorTest.java b/plugins/json/src/test/java/org/apache/struts2/json/JSONInterceptorTest.java index 01e3a11c5..dd8492799 100644 --- a/plugins/json/src/test/java/org/apache/struts2/json/JSONInterceptorTest.java +++ b/plugins/json/src/test/java/org/apache/struts2/json/JSONInterceptorTest.java @@ -556,8 +556,6 @@ public class JSONInterceptorTest extends StrutsTestCase { class MockActionInvocationEx extends MockActionInvocation { - private static final long serialVersionUID = 3057703805130170757L; - private boolean invoked; @Override diff --git a/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionInvocation.java b/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionInvocation.java index e018591c6..0857a780e 100644 --- a/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionInvocation.java +++ b/plugins/rest/src/main/java/org/apache/struts2/rest/RestActionInvocation.java @@ -46,8 +46,6 @@ import java.util.Map; */ public class RestActionInvocation extends DefaultActionInvocation { - private static final long serialVersionUID = 3485701178946428716L; - private static final Logger LOG = LogManager.getLogger(RestActionInvocation.class); private ContentTypeHandlerManager handlerSelector; diff --git a/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/OldDecorator2NewStrutsDecorator.java b/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/OldDecorator2NewStrutsDecorator.java index f7b35de2d..b172eb4fb 100644 --- a/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/OldDecorator2NewStrutsDecorator.java +++ b/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/OldDecorator2NewStrutsDecorator.java @@ -140,8 +140,6 @@ public abstract class OldDecorator2NewStrutsDecorator extends BaseWebAppDecorato static class DummyActionInvocation implements ActionInvocation { - private static final long serialVersionUID = -4808072199157363028L; - ActionSupport action; public DummyActionInvocation(ActionSupport action) { @@ -196,14 +194,6 @@ public abstract class OldDecorator2NewStrutsDecorator extends BaseWebAppDecorato public void init(ActionProxy proxy) { } - public ActionInvocation serialize() { - return null; - } - - public ActionInvocation deserialize(ActionContext actionContext) { - return null; - } - } }