[ https://issues.apache.org/jira/browse/MYFACES-4044?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bill Lucy updated MYFACES-4044: ------------------------------- Resolution: Fixed Assignee: Bill Lucy Fix Version/s: 2.2.10 Status: Resolved (was: Patch Available) > Flow ID Ambiguity Is Not Handled Well > ------------------------------------- > > Key: MYFACES-4044 > URL: https://issues.apache.org/jira/browse/MYFACES-4044 > Project: MyFaces Core > Issue Type: Improvement > Affects Versions: 2.2.9 > Reporter: Bill Lucy > Assignee: Bill Lucy > Fix For: 2.2.10 > > Attachments: MYFACES-4044.patch > > > If we have multiple flows with the same IDs and definingDocumentIds, we won't > behave as expected: only one flow will actually be used, but no error or > warning to that effect is emitted. > Consider if we have two apps in the same EAR, each defining flows with an ID > of "sample-flow", like this: > final String flowId = "sample-flow"; > flowBuilder.id("", flowId); > Per the JSF spec, this creates ambiguity: > 11.4.3.1 > Defining Flows > Flows are defined using the <flow-definition> element. This element must have > an id attribute which uniquely > identifies the flow within the scope of the Application Configuration > Resource file in which the element appears. To > enable multiple flows with the same id to exist in an application, the > <faces-config><name> element is taken to > be the definingDocumentId of the flow. If no <name> element is specified, the > empty string is taken as the value > for definingDocumentId. > In this case, app1 might define some kind of initializer with the flow, while > app2 doesn't. In that case, app2 might (incorrectly) end up trying to use an > initializer that was intended for app1. A developer might see issues > resulting from the initializer being called from the wrong app, but it > wouldn't be clear that the wrong flow had been entered (due to ambiguity). > Mojarra has something like this: > Caused by: java.lang.IllegalStateException: Flow with id \"sample-flow\" and > definingDocumentId \"\" already exists."}} > I think that MyFaces should emit some kind of similar warning/error in the > given scenario. -- This message was sent by Atlassian JIRA (v6.3.4#6332)