[
https://issues.apache.org/struts/browse/STR-3029?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_40829
]
Luca Boncompagni commented on STR-3029:
---------------------------------------
no, I upgraded to 1.3.8 and I patched the ActionconfigMatcher to use
BeanUtils.cloneBean(fConfigs[x]), in this way everything works well. Here
you can find the patch:
--- ActionConfigMatcher.java 2007-03-03 09:44:10.000000000 +0100
+++ ActionConfigMatcher-new.java 2007-04-12 09:45:10.168689442 +0200
@@ -180,10 +180,17 @@
ForwardConfig cfg;
for (int x = 0; x < fConfigs.length; x++) {
- cfg = new ActionForward();
- cfg.setName(fConfigs[x].getName());
+ try {
+ cfg = (ActionForward) BeanUtils.cloneBean(fConfigs[x]);
+ } catch (Exception ex) {
+ log.warn("Unable to clone action forward, recommend not
using "
+ + "wildcards", ex);
+
+ return null;
+ }
+ // cfg.setName(fConfigs[x].getName());
cfg.setPath(convertParam(fConfigs[x].getPath(), vars));
- cfg.setRedirect(fConfigs[x].getRedirect());
+ // cfg.setRedirect(fConfigs[x].getRedirect());
cfg.setCommand(convertParam(fConfigs[x].getCommand(), vars));
cfg.setCatalog(convertParam(fConfigs[x].getCatalog(), vars));
cfg.setModule(convertParam(fConfigs[x].getModule(), vars));
regards,
Luca
> ActionConfigMatcher does not instantiate the correct ActionForward
> ------------------------------------------------------------------
>
> Key: STR-3029
> URL: https://issues.apache.org/struts/browse/STR-3029
> Project: Struts 1
> Issue Type: Bug
> Affects Versions: 1.2.9
> Environment: Solaris WebSphere 5.1.1
> Reporter: Luca Boncompagni
>
> If you create an action config like this:
> <action path="/mf/**"
> type="it.test.pfwk.actions.MultiFrameAction">
> <forward name="success"
> className="it.test.framework.actions.WsActionForward" path="/luca.jsp"/>
> </action>
> When you do a mapping.findForward() you get an
> org.apache.struts.action.ActionForward instead of
> it.test.framework.actions.WsActionForward.
> I think that the problem is in ActionconfigMatcher, convertActionConfig():
> ForwardConfig[] fConfigs = orig.findForwardConfigs();
> ForwardConfig cfg;
> for (int x = 0; x < fConfigs.length; x++) {
> cfg = new ActionForward();
> cfg.setContextRelative(fConfigs[x].getContextRelative());
> Here you should instatiate the correct actionForrward, for instance, if you
> modifiy ActionForwrad in order to have a method like newInstance():
> ForwardConfig[] fConfigs = orig.findForwardConfigs();
> ForwardConfig cfg;
> for (int x = 0; x < fConfigs.length; x++) {
> cfg = fConfigs[x].newInstnce();
> cfg.setContextRelative(fConfigs[x].getContextRelative());
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.