[
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