[
https://issues.apache.org/struts/browse/WW-2443?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Don Brown resolved WW-2443.
---------------------------
Resolution: Fixed
Assignee: Don Brown
Fixed, thanks for the patch
> Allow CodeBehind Result Annotations to be Overridden by Child Classes
> ---------------------------------------------------------------------
>
> Key: WW-2443
> URL: https://issues.apache.org/struts/browse/WW-2443
> Project: Struts 2
> Issue Type: Bug
> Components: Plugin - CodeBehind, Plugin - Convention
> Affects Versions: 2.1.0
> Reporter: Blake Byrnes
> Assignee: Don Brown
> Priority: Minor
> Fix For: 2.1.1
>
> Attachments: patchfile.txt
>
>
> I'm in edge struts 2 (2.1.1-SNAPSHOT), so I'm not sure if this is a problem
> in 2.0.11.
> When using codebehind, I expected that if a parent class has a @Result
> annotation with a given name, and a child class has a Result annotation with
> the same name, that the child annotation would "override" any parent results
> of the same name. This would seem like expected inheritence behavior (at
> least to me). It appears that annotations are being taken in the opposite
> order (parent overrides child setting).
> example:
> @Result(name="input", value="parent.action")
> parentClass
> @Result(name="input", value="chlid.action")
> childClass extends parentClass
> currently the childClass will go to /parent.action, instead of child.action
> Looking through the code, it looks like when the ResultMap is being created,
> it loops from the current class to the superclass, each time overwriting with
> parent class results. Is this something intended, or can it be changed to
> work in reverse? The change is simple - just do a check if the entry already
> exists in the map before inserting.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.