struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeromy Evans (JIRA)" <j...@apache.org>
Subject [jira] Commented: (WW-2587) @SkipValidation not found on superclass method
Date Sat, 12 Apr 2008 00:57:05 GMT

    [ https://issues.apache.org/struts/browse/WW-2587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=43609#action_43609
] 

Jeromy Evans commented on WW-2587:
----------------------------------

I think the ideal is that the same algorithm used by the AnnovationActionValidationManager
to recursively check classes and interfaces for annotations is also used to find @SkipValidation.
 I wouldn't want to create another recursive search that does the same thing but slightly
differently.  I've already added a utility class to the JSON plugin to do this to find @SMDMethod
(based on the ValidationActionValidationManager) so maybe some refactoring is in order.  
This crosses over with xwork though.

> @SkipValidation not found on superclass method
> ----------------------------------------------
>
>                 Key: WW-2587
>                 URL: https://issues.apache.org/struts/browse/WW-2587
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core Interceptors
>            Reporter: Brad Cupit
>
> The SkipValidation annotation is a great addition, but it would be nice if it was found
on super class methods (i.e. the method being overridden) and/or interfaces.
> I have a CGLIB-generated proxy for my Action (created by Spring) so the SkipValidation
annotation is never found, since CGLIB-proxies extend the class they proxy.
> Admittedly, this is more of a problem with CGLIB, than with Struts2, however if @SkipValidation
were allowed on methods in interfaces or superclasses, my problem would be solved.
> Unfortunately, the validation annotations (like @RequiredStringValidator), are found
on super classes. So the net effect is that my SkipValidation annotation is not found, but
the validation annotations are, which means validation is occurring when it shouldn't.
> potential workarounds:
> a) use one action method per Action so validation can always be done for that entire
class, or
> b) use excludeMethods param when configuring the validation interceptor in struts.xml
> Note that for option b) to work with zero-configuration, the @ParentPackage annotation
must be applied to the Action class that will use the package defined in struts.xml
> Ideal fix:
> The AnnotationValidationInterceptor#doIntercept(ActionInvocation) method would check
for the SkipValidation annotation on the method being overridden. This would not only fix
the CGLIB-proxy issue, but would also allow SkipValidation to be used on interfaces and superclasses.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message