[ 
https://issues.apache.org/jira/browse/MYFACES-4553?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thomas Andraschko resolved MYFACES-4553.
----------------------------------------
    Resolution: Fixed

> 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
>            Assignee: Volodymyr Siedlecki
>            Priority: Major
>             Fix For: 4.0.0-RC5
>
>         Attachments: faces_flows_intermediate_web.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)

Reply via email to