I added a unit test to verify the situation you describe and with the code currently in CVS it is working correctly. From ParameterizableFlowAttributeMapperTests:
Code:
public void testFormActionInCombinationWithMapping() throws Exception {
context.setLastEvent(new Event(this));
context.setActiveSession(parentSession);
assertTrue(context.getFlowScope().isEmpty());
FormAction action = new FormAction();
action.setFormObjectName("command");
action.setFormObjectClass(TestBean.class);
action.setFormObjectScope(ScopeType.FLOW);
context.setProperty("method", "setupForm");
action.execute(context);
assertEquals(2, context.getFlowScope().size());
assertNotNull(context.getFlowScope().get("command"));
Map mappingsMap = new HashMap();
mappingsMap.put("${flowScope.command}", "command");
mapper.setInputMappingsMap(mappingsMap);
Map input = mapper.createSubflowInput(context);
assertEquals(1, input.size());
assertSame(parentSession.getScope().get("command"), input.get("command"));
assertTrue(subflowSession.getScope().isEmpty());
subflowSession.getScope().putAll(input);
context.setActiveSession(subflowSession);
assertEquals(1, context.getFlowScope().size());
action.execute(context);
assertEquals(2, context.getFlowScope().size());
assertSame(parentSession.getScope().get("command"), context.getFlowScope().get("command"));
}
Erwin