[ 
http://issues.apache.org/struts/browse/SHALE-188?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wendy Smoak updated SHALE-188:
------------------------------

    Comment: was deleted

> Add a default outcome to the dialog manager
> -------------------------------------------
>
>                 Key: SHALE-188
>                 URL: http://issues.apache.org/struts/browse/SHALE-188
>             Project: Shale
>          Issue Type: Improvement
>          Components: Dialog
>         Environment: Debian Linux - JDK 1.5
>            Reporter: Laure Goudon
>             Fix For: 1.0.4-SNAPSHOT
>
>
> Version from manifest: Implementation-Version: 20060326
> Hello,
> When we click on the browser back button while in a dialog and then click on 
> another link or button, an Illegal argument exception comes (see stacktrace). 
> This error occurs because Shale can't find any transition for this action. It 
> would be a good idea that we could have a default transition (for instance 
> named "*" or "default") that the dialog navigation handler class would use if 
> no other transition was found for this state or dialog.
> Thanks.
> stacktrace :
> java.lang.IllegalArgumentException: You have requested a transition outcome 
> named "clusterMenu" from a state named "viewApplicationView" in a dialog 
> named "viewApplication", but no transition definition can be found.  Double 
> check the spelling of the transition outcome name.
>       at 
> org.apache.shale.dialog.faces.DialogNavigationHandler.transition(DialogNavigationHandler.java:526)
>       at 
> org.apache.shale.dialog.faces.DialogNavigationHandler.postprocess(DialogNavigationHandler.java:353)
>       at 
> org.apache.shale.dialog.faces.DialogNavigationHandler.handleNavigation(DialogNavigationHandler.java:219)
>       at 
> org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:84)
>       at javax.faces.component.UICommand.broadcast(UICommand.java:106)
>       at 
> org.apache.myfaces.custom.navmenu.htmlnavmenu.HtmlCommandNavigationItem.broadcast(HtmlCommandNavigationItem.java:228)
> Proposed solution :
> In the class DialogNavigationHandler in the method transition
>       /** Default outcome name constant as in :
>        *  <transition outcome="*" target="exit"/>
>        */
>       public static final String DEFAULT_OUTCOME_NAME = "*";
>         // Identify the appropriate Transition
>         Transition transition = state.findTransition(outcome);
>         if (transition == null) {
>             transition = state.getDialog().findTransition(outcome);
>         // ---- Begin patch ----
>         // If not found, check the default outcome for the current state
>           if (transition == null) {
>            Transition transition = state.findTransition(outcome);
>            // If not found, check the default outcome for the current dialog.
>            if (transition == null) {
>              transition = 
> state.getDialog().findTransition(DEFAULT_OUTCOME_NAME);
>            }
>         }
>         // ---- End patch ----
>         }
>       if (transition == null) {
>             throw new 
> IllegalArgumentException(messages.getMessage("dialog.noTransition",
>                                                new Object[] { outcome,
>                                                               state.getName(),
>                                                               
> state.getDialog().getName() }));
>         }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/struts/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to