You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltaspike.apache.org by "Gerhard Petracek (JIRA)" <ji...@apache.org> on 2014/02/20 09:56:20 UTC
[jira] [Resolved] (DELTASPIKE-524) illegal implementation of
SecurityAwareViewHandler
[ https://issues.apache.org/jira/browse/DELTASPIKE-524?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gerhard Petracek resolved DELTASPIKE-524.
-----------------------------------------
Resolution: Fixed
Fix Version/s: 0.6
> illegal implementation of SecurityAwareViewHandler
> --------------------------------------------------
>
> Key: DELTASPIKE-524
> URL: https://issues.apache.org/jira/browse/DELTASPIKE-524
> Project: DeltaSpike
> Issue Type: Bug
> Components: JSF-Module
> Affects Versions: 0.5
> Reporter: Markus Schulz
> Assignee: Gerhard Petracek
> Fix For: 0.6
>
> Attachments: DELTASPIKE-524.patch
>
>
> the implementation of the SecurityAwareViewHandler use something like this:
> {quote}
> public UIViewRoot createView(FacesContext context, String viewId)
> {
> ..
> context.setViewRoot(result);
> ...
> if (originalViewRoot != null)
> {
> context.setViewRoot(originalViewRoot);
> }
> ..
> }
> {quote}
> But the call to context.setViewRoot(..) will clear the viewMap of the current active ViewRoot and therefore it destroys the state of current view.
> Sample:
> ViewDeclarationLanguage vdl = context.getApplication().getViewHandler().getViewDeclarationLanguage(context, cleanTargetViewName);
> ViewMetadata viewMetadata = vdl.getViewMetadata(context, cleanTargetViewName);
> UIViewRoot viewRoot = viewMetadata.createMetadataView(context);
> targetViewParams = ViewMetadata.getViewParameters(viewRoot);
> the call to viewMetadata.createMetadataView(context) will destroy my current viewMap.
> That should not be happen.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)