-
Notifications
You must be signed in to change notification settings - Fork 236
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NullPointerException when combining SWF 2.4.7, MyFaces Core 2.2.12 and WebSphere 9.0.7 [SWF-1726] #902
Comments
Rossen Stoyanchev commented Is this a regression? |
Volker Malzahn commented I don't really understand your question. This issue makes it impossible to use a transition without a "to" attribute (simple <transition on="..."><evaluate.../></transition>) in the combination SWF 2.4, MyFaces 2.2 and WebSphere 9. |
Rossen Stoyanchev commented The question is simply whether some recent change in Web Flow broke what previously used to work? |
Rossen Stoyanchev commented Redirecting in the same state is known to have side effects in JSF. The recommendation is to disable it, see Redirect in Same State. |
Volker Malzahn commented In this situation it's in the reverse way: "redirect in same state" solves the problem for non-AJAX requests. But for AJAX requests a redirect isn't acceptable (the change parts should be updated only). So we need a solution for AJAX requests in the way I have described above. |
Rossen Stoyanchev commented Understood and apologies for the slow response, while I was away. To be completely honest, the JSF integration in Web Flow is quite deep unlike my own expertise with JSF. Unfortunately I have to rely on some help from the community and users like yourself to suggest and try out concrete fixes. |
Jürgen Langthaler commented We hit the same issue using SWF 2.5.1, MyFaces 2.3.2 and Websphere 9.0.0.10. A fix would be very appreciated. |
Volker Malzahn opened SWF-1726 and commented
Following NPE occurs when running a webapp based on SWF 2.4.7, MyFaces Core 2.2.12 and WebSphere 9.0.7:
The NPE occurs when a view-state transition is processed without a "to=...", i.e. the same view-state is shown again. Following happens:
-
FlowViewHandler.restoreFlowView()
reads lastViewRoot
instance of last request from flash scopethis old
javax.faces.component.UIViewRoot
instance contains an instance variable_viewScope
which references anorg.apache.myfaces.view.ViewScopeProxyMap
, which contains inst. variable_delegate
which holds a reference toorg.apache.myfaces.context.servlet.SessionMap
which contains a reference to theHttpServletRequest
instance of last request.later on this reference to the
HttpServletRequest
instance of last request is used byorg.apache.myfaces.view.ViewScopeProxyMap
to check if a certain attribute is stored in JSF's view scope. This callsHttpServletRequestWrapper.getSession()
which causes the NPE inside WebSphere's SRTServletRequest/SRTRequestContext classes.In contrast to simply reusing an old
UIViewRoot
instance byFlowViewHandler.restoreFlowView()
methodjavax.faces.component.UIViewRoot.restoreState()
reinitializes_viewScope
with a new instance ofViewScopeProxyMap
.Affects: 2.4.7
1 votes, 3 watchers
The text was updated successfully, but these errors were encountered: