DESCRIPTION HERE http://java.net/jira/browse/JAVASERVERFACES-3476 SECTION: Modified Files ---------------------------- M jsf-ri/src/main/java/com/sun/faces/application/NavigationHandlerImpl.java M test/javaee6web/flowTraversalCombinations/src/main/java/com/sun/faces/test/javaee6web/flowtraversalcombinations/FlowCallNaviToOthersBean.java M test/javaee6web/flowTraversalCombinations/src/main/webapp/child-flow-start-from-method-call-node/DestinationView.xhtml M test/javaee6web/flowTraversalCombinations/src/main/webapp/child-flow-start-from-method-call-node/child-flow-start-from-method-call-node-flow.xml M test/javaee6web/flowTraversalCombinations/src/main/webapp/start-from-flow-call-node/start-from-flow-call-node-flow.xml A test/javaee6web/flowTraversalCombinations/src/test/java/com/sun/faces/test/javaee6web/flowtraversalcombinations/Issue3476IT.java SECTION: Diffs ---------------------------- Index: jsf-ri/src/main/java/com/sun/faces/application/NavigationHandlerImpl.java =================================================================== --- jsf-ri/src/main/java/com/sun/faces/application/NavigationHandlerImpl.java (revision 14318) +++ jsf-ri/src/main/java/com/sun/faces/application/NavigationHandlerImpl.java (working copy) @@ -1157,7 +1157,7 @@ // that we must not enter it later. try { setDidTransition(context, true); - flowHandler.transition(context, currentFlow, newFlow, null, startNodeId); + flowHandler.transition(context, currentFlow, newFlow, facesFlowCallNode, startNodeId); result = getViewId(context, fromAction, startNodeId, toFlowDocumentId); } finally { Index: test/javaee6web/flowTraversalCombinations/src/main/java/com/sun/faces/test/javaee6web/flowtraversalcombinations/FlowCallNaviToOthersBean.java =================================================================== --- test/javaee6web/flowTraversalCombinations/src/main/java/com/sun/faces/test/javaee6web/flowtraversalcombinations/FlowCallNaviToOthersBean.java (revision 14318) +++ test/javaee6web/flowTraversalCombinations/src/main/java/com/sun/faces/test/javaee6web/flowtraversalcombinations/FlowCallNaviToOthersBean.java (working copy) @@ -55,5 +55,14 @@ public void setInBoundPara1(String para1) { this.inBoundPara1 = para1; } - + + private String inBoundPara2 = "ExpectedString"; + + public String getInBoundPara2() { + return this.inBoundPara2; + } + + public void setInBoundPara2(String para) { + this.inBoundPara2 = para; + } } \ No newline at end of file Index: test/javaee6web/flowTraversalCombinations/src/main/webapp/child-flow-start-from-method-call-node/DestinationView.xhtml =================================================================== --- test/javaee6web/flowTraversalCombinations/src/main/webapp/child-flow-start-from-method-call-node/DestinationView.xhtml (revision 14318) +++ test/javaee6web/flowTraversalCombinations/src/main/webapp/child-flow-start-from-method-call-node/DestinationView.xhtml (working copy) @@ -48,6 +48,8 @@ Great! You are now in the correct destination view. + + The inbound parameter should be #{flowScope.Para2}. Index: test/javaee6web/flowTraversalCombinations/src/main/webapp/child-flow-start-from-method-call-node/child-flow-start-from-method-call-node-flow.xml =================================================================== --- test/javaee6web/flowTraversalCombinations/src/main/webapp/child-flow-start-from-method-call-node/child-flow-start-from-method-call-node-flow.xml (revision 14318) +++ test/javaee6web/flowTraversalCombinations/src/main/webapp/child-flow-start-from-method-call-node/child-flow-start-from-method-call-node-flow.xml (working copy) @@ -49,6 +49,11 @@ MethodCallNodeToBeCalled + + Para2 + #{flowScope.Para2} + + #{childFlowMethodCallStartingBean.toLastPage()} delay_event Index: test/javaee6web/flowTraversalCombinations/src/main/webapp/start-from-flow-call-node/start-from-flow-call-node-flow.xml =================================================================== --- test/javaee6web/flowTraversalCombinations/src/main/webapp/start-from-flow-call-node/start-from-flow-call-node-flow.xml (revision 14318) +++ test/javaee6web/flowTraversalCombinations/src/main/webapp/start-from-flow-call-node/start-from-flow-call-node-flow.xml (working copy) @@ -81,6 +81,11 @@ child-flow-start-from-flow-call-node + + + Para2 + #{flowCallNaviToOthersBean.inBoundPara2} + Index: test/javaee6web/flowTraversalCombinations/src/test/java/com/sun/faces/test/javaee6web/flowtraversalcombinations/Issue3476IT.java =================================================================== --- test/javaee6web/flowTraversalCombinations/src/test/java/com/sun/faces/test/javaee6web/flowtraversalcombinations/Issue3476IT.java (revision 0) +++ test/javaee6web/flowTraversalCombinations/src/test/java/com/sun/faces/test/javaee6web/flowtraversalcombinations/Issue3476IT.java (working copy) @@ -0,0 +1,75 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 1997-2015 Oracle and/or its affiliates. All rights reserved. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common Development + * and Distribution License("CDDL") (collectively, the "License"). You + * may not use this file except in compliance with the License. You can + * obtain a copy of the License at + * https://glassfish.java.net/public/CDDL+GPL_1_1.html + * or packager/legal/LICENSE.txt. See the License for the specific + * language governing permissions and limitations under the License. + * + * When distributing the software, include this License Header Notice in each + * file and include the License file at packager/legal/LICENSE.txt. + * + * GPL Classpath Exception: + * Oracle designates this particular file as subject to the "Classpath" + * exception as provided by Oracle in the GPL Version 2 section of the License + * file that accompanied this code. + * + * Modifications: + * If applicable, add the following below the License Header, with the fields + * enclosed by brackets [] replaced by your own identifying information: + * "Portions Copyright [year] [name of copyright owner]" + * + * Contributor(s): + * If you wish your version of this file to be governed by only the CDDL or + * only the GPL Version 2, indicate your decision by adding "[Contributor] + * elects to include this software in this distribution under the [CDDL or GPL + * Version 2] license." If you don't indicate a single choice of license, a + * recipient has the option to distribute your version of this file under + * either the CDDL, the GPL Version 2 or to extend the choice of license to + * its licensees as provided above. However, if you add GPL Version 2 code + * and therefore, elected the GPL Version 2 license, then the option applies + * only if the new code is made subject to such option by the copyright + * holder. + */ + +package com.sun.faces.test.javaee6web.flowtraversalcombinations; + +import com.gargoylesoftware.htmlunit.WebClient; +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput; +import org.junit.After; +import static org.junit.Assert.assertTrue; +import org.junit.Before; +import org.junit.Test; + +public class Issue3476IT { + private String webUrl; + private WebClient webClient; + + @Before + public void setUp() { + webUrl = System.getProperty("integration.url"); + webClient = new WebClient(); + } + + @After + public void tearDown() { + webClient.closeAllWindows(); + } + + @Test + public void testFlowCallNaviToMethodCall() throws Exception { + HtmlPage page = webClient.getPage(webUrl); + HtmlSubmitInput button = (HtmlSubmitInput) page.getHtmlElementById("go_to_start_from_flow_call_node"); + page = button.click(); + button = (HtmlSubmitInput) page.getHtmlElementById("navigate_to_method_call_node"); + page = button.click(); + assertTrue(page.asXml().contains("The inbound parameter should be ExpectedString")); + } +} \ No newline at end of file SECTION: New Files ---------------------------- SEE ATTACHMENTS