[
https://issues.apache.org/jira/browse/MYFACES-4553?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17681420#comment-17681420
]
Volodymyr Siedlecki edited comment on MYFACES-4553 at 1/27/23 5:48 PM:
-----------------------------------------------------------------------
Add to the note above, I see another difference with a unit test case (
{{org.apache.myfaces.application.flow.FlowMyFacesCDIRequestTestCase.[testFlow1_1|https://github.com/apache/myfaces/blob/93a47f3c78716f0ff3c01227ee1cd5972aeb965b/impl/src/test/java/org/apache/myfaces/application/flow/FlowMyFacesCDIRequestTestCase.java#L59-L72]
}}) if it's run against Mojarra: *from-outcome* differs
4.0.0 - RC3MyFaces:
<navigation-case>
<from-view-id>/flow1_1.xhtml</from-view-id>
<from-outcome>{*}begin{*}</from-outcome>
<to-view-id>/flow1/begin.xhtml</to-view-id>/Users/volosied/opensource/sample-apps/flows-failure/target/flows.war
</navigation-case>
null
_____
Mojarra 4.0.0
NavigationCase{fromViewId='null', fromAction='null', fromOutcome='{*}flow1{*}',
if='null', toViewId='/flow1/begin.xhtml', faces-redirect=false,
includeViewParams=false', parameters={}}
null
flows.war is attached to test
was (Author: volosied):
Add to the note above, I see another difference with a unit test case (
{{org.apache.myfaces.application.flow.FlowMyFacesCDIRequestTestCase.[testFlow1_1|https://github.com/apache/myfaces/blob/93a47f3c78716f0ff3c01227ee1cd5972aeb965b/impl/src/test/java/org/apache/myfaces/application/flow/FlowMyFacesCDIRequestTestCase.java#L59-L72]
}}) if it's run against Mojarra: *from-outcome* differs
4.0.0 - RC3MyFaces:
<navigation-case>
<from-view-id>/flow1_1.xhtml</from-view-id>
<from-outcome>{*}begin{*}</from-outcome>
<to-view-id>/flow1/begin.xhtml</to-view-id>/Users/volosied/opensource/sample-apps/flows-failure/target/flows.war
</navigation-case>
null
_____
Mojarra 4.0.0
NavigationCase{fromViewId='null', fromAction='null', fromOutcome='{*}flow1{*}',
if='null', toViewId='/flow1/begin.xhtml', faces-redirect=false,
includeViewParams=false', parameters={}}
null
> TCK spec/flows/intermediate failure: WELD-001303: No active contexts for
> scope type jakarta.faces.flow.FlowScoped
> -----------------------------------------------------------------------------------------------------------------
>
> Key: MYFACES-4553
> URL: https://issues.apache.org/jira/browse/MYFACES-4553
> Project: MyFaces Core
> Issue Type: Bug
> Affects Versions: 4.0.0-RC4
> Reporter: Volodymyr Siedlecki
> Priority: Major
> Attachments: faces_flows_intermediate_web.war, flows.war
>
>
> {color:#0e101a}The WELD-001303 error occurs because we are not yet in a flow
> officially (but will enter one). This means that the contextual storage for
> the flow has yet to be created. This cause the weld error as the
> FlowScopeContext is not yet active – [see isActive
> call.|https://github.com/apache/myfaces/blob/main/impl/src/main/java/org/apache/myfaces/flow/cdi/FlowScopeContext.java#L105]
> {color}
>
> {color:#0e101a}So flow scope is not active, but MyFaces starts to look at the
> nodes, it first checks the switch condition which references the flowScope
> implicit object:
> {color}
> {color:#0e101a}Application Switch Case: {color}
> [{color:#4a6ee0}[https://github.com/jakartaee/faces/blob/3fae98234692ec16545a6d27cf36fabaeb883f9b/tck/old-tck/source/src/web/jsf/spec/flows/intermediate/maintain-customer-record/maintain-customer-record-flow.xml#L39]{color}]
>
> {color:#0e101a}MyFace Switch Case Check: {color}
> [{color:#4a6ee0}[https://github.com/apache/myfaces/blob/8956fd167f797a4e32511e268a6520715cb132a5/impl/src/main/java/org/apache/myfaces/application/NavigationHandlerImpl.java#L645]{color}]
>
>
> {color:#0e101a}This is a problem because the context for flowScope still
> needs to be created, as mentioned above. This flow transition, which causes
> the scope to be activated, doesn't happen until
> [applyFlowTransition|https://github.com/apache/myfaces/blob/8956fd167f797a4e32511e268a6520715cb132a5/impl/src/main/java/org/apache/myfaces/application/NavigationHandlerImpl.java#L368]
> (which is much later). {color}
>
> {color:#0e101a}My only idea is to force a transition call before we check the
> nodes, which causes myfaces unit test failures.
> {color}
> {color:#0e101a}I also believe this is an issue in previous versions – we were
> lucky since the flowScope implicit object was evaluated to null (since no
> scope was active), and the "flowScope.customerId == null" check passed.{color}
>
> {color:#0e101a}Unit Test Code:{color}
> *{color:#0e101a}spec/flows/intermediate:{color}*
> {color:#0e101a}Test:
> {color}[{color:#4a6ee0}[https://github.com/jakartaee/faces/blob/4.0.1/tck/old-tck/source/src/com/sun/ts/tests/jsf/spec/flows/intermediate/URLClient.java#L59]{color}]
> {color:#0e101a}
> {color}[{color:#4a6ee0}[https://github.com/jakartaee/faces/blob/4.0.1/tck/old-tck/source/src/com/sun/ts/tests/jsf/spec/flows/intermediate/URLClient.java#L91]{color}]
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)