Flow expression failing on exit from login form

Description

Multiple reports of an error in the password flow:

org.springframework.binding.expression.EvaluationException: An ELException occurred getting the value for expression 'authenticationContext.setAttemptedFlow(thisFlow)' on context [class org.springframework.webflow.engine.impl.RequestControlContextImpl]

Need to see if I can reproduce through just a timeout. I could try replacing the expression with a full reference to the root of the PRC but I can't see that fixing it.

Environment

None

Attachments

1

Activity

Scott Cantor December 10, 2018 at 3:28 PM

Cherry-picked back to maint-3.4

Scott Cantor December 3, 2018 at 4:47 PM

The proposed changes to the flows seem to have eliminated these errors, so I can conclude that referencing a viewScope variable at the transition out of the view appears to be an unsupported approach that behaves unpredictably. So we won't do that.

I'll backport this if we ever do a 3.4.2 (which I imagine we will).

Scott Cantor November 26, 2018 at 7:29 PM

I had applied this change to the wrong branch of the flow, but I corrected that a couple of weeks ago and it's been running clean since. Traffic has been light with the holiday but so far it would suggest there's a SWF bug that we can work around, and probably need to revisit any other on-exit cases in the source.

Scott Cantor November 6, 2018 at 2:34 PM

I applied this change myself last evening, I'll monitor rest of today. Once I confirm the same errors are appearing I'll revisit.

Scott Cantor November 1, 2018 at 11:04 PM

The meaningless patch is attached. It should be impossible for this to make a difference, and I have no other idea how it could be fixed.

The patch supposes that the viewscope variables created during view setup are randomly and inconsistently missing/unavailable during the exit out of the view, despite clearly being there most of the time.

Whatever this is must be a SWF bug, I would say. The alternative will be to come up with a different way to execute that line of code.

Fixed

Details

Assignee

Reporter

Components

Fix versions

Created April 24, 2017 at 3:17 PM
Updated December 14, 2018 at 3:39 PM
Resolved December 3, 2018 at 4:47 PM