[ 
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

        

Reply via email to