[
https://issues.apache.org/jira/browse/WW-3753?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rees Byars updated WW-3753:
---------------------------
Description:
An ActionValidatorManager accepts a java.util.String "context" parameter for
identifying the appropriate configurations. In the
AnnotationActionValidatorManager's buildValidatorKey() method, however,
"config.getName()" is used instead of the passed-in context. This violates the
contract of the interface and tightly couples the
AnnotationActionValidatorManager to the ValidationInterceptor.
I have a situation whereby I have created my own validation interceptor for a
special case that passes in a context not derived from "proxy.getActionName()"
(equivalent to config.getName() except for in the case of wildcards), only to
find that this context isn't used properly by the manager. I then created my
own manager, changing only the buildValidatorKey() to use the given context,
and it works well.
Either the ActionValidatorManager should be changed to no longer accept a
context parameter and handle the context itself in every case (which seems to
not be the best solution), or the AnnotationActionValidatorManager should be
changed to use the given context in every case. The ValidationInterceptor will
need a small change as well in this case to maintain the functionality of
WW-3194.
was:
An ActionValidatorManager accepts a java.util.String "context" parameter for
identifying the appropriate configurations. In the
AnnotationActionValidatorManager's buildValidatorKey() method, however,
"proxy.getMethod()" is used instead of the passed-in context. This violates
the contract of the interface and tightly couples the
AnnotationActionValidatorManager to the AnnotationValidationInterceptor.
I have a situation whereby I have created my own validation interceptor for a
special case that passes in a context not derived from proxy.getMethod(), only
to find that this context isn't used properly by the manager. I then created
my own manager, changing only the buildValidatorKey() to use the given context,
and it works well.
Either the ActionValidatorManager should be changed to no longer accept a
context parameter and handle the context itself in every case (which seems to
not be the best solution), or the AnnotationActionValidatorManager should be
changed to use the given context in every case.
> The AnnotationActionValidatorManager does not adhere to the
> ActionValidatorManager interface's contract
> -------------------------------------------------------------------------------------------------------
>
> Key: WW-3753
> URL: https://issues.apache.org/jira/browse/WW-3753
> Project: Struts 2
> Issue Type: Bug
> Reporter: Rees Byars
> Priority: Minor
>
> An ActionValidatorManager accepts a java.util.String "context" parameter for
> identifying the appropriate configurations. In the
> AnnotationActionValidatorManager's buildValidatorKey() method, however,
> "config.getName()" is used instead of the passed-in context. This violates
> the contract of the interface and tightly couples the
> AnnotationActionValidatorManager to the ValidationInterceptor.
> I have a situation whereby I have created my own validation interceptor for a
> special case that passes in a context not derived from
> "proxy.getActionName()" (equivalent to config.getName() except for in the
> case of wildcards), only to find that this context isn't used properly by the
> manager. I then created my own manager, changing only the
> buildValidatorKey() to use the given context, and it works well.
> Either the ActionValidatorManager should be changed to no longer accept a
> context parameter and handle the context itself in every case (which seems to
> not be the best solution), or the AnnotationActionValidatorManager should be
> changed to use the given context in every case. The ValidationInterceptor
> will need a small change as well in this case to maintain the functionality
> of WW-3194.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira