Anonymous committed b82907a

Fixing problem with duplicate result execution XW-521


Comments (0)

Files changed (3)


     protected Iterator interceptors;
     protected ValueStack stack;
     protected Result result;
+    protected Result explicitResult;
     protected String resultCode;
     protected boolean executed = false;
     protected boolean pushAction = true;
     public Result createResult() throws Exception {
-    	if (result != null) {
-    		return result;
+    	if (explicitResult != null) {
+    	    Result ret = explicitResult;
+    	    explicitResult = null;;
+    		return ret;
         ActionConfig config = proxy.getConfig();
         Map results = config.getResults();
             if (methodResult instanceof Result) {
-            	this.result = (Result) methodResult;
+            	this.explicitResult = (Result) methodResult;
             	return null;
             } else {
             	return (String) methodResult;


         ActionProxy baseActionProxy = actionProxyFactory.createActionProxy(
                 "baz", "resultAction", null);
         assertEquals(null, baseActionProxy.execute());
+        assertTrue(SimpleAction.resultCalled);
     public void testSimple() {


     private String aliasSource;
     private String aliasDest;
+    public static boolean resultCalled;
     public SimpleAction() {
+        resultCalled = false;
     public Result resultAction() throws Exception {
-    	return new VoidResult();
+    	return new Result() {
+            public void execute(ActionInvocation invocation) throws Exception {
+                resultCalled = true;
+            }
+    	};
     public String exceptionMethod() throws Exception {
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.