Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.0-beta1
-
None
Description
ActionValidatorManager.buildValidators doesn't traverse up the class hierarchy looking for validators for every super class. It only get the validator for the superclass.
The current code is :
...
if (!actionClass.getSuperclass().equals(Object.class)) {
validators.addAll(buildClassValidators(actionClass.getSuperclass(), checkFile));
}
validators.addAll(buildClassValidators(actionClass, checkFile));
validators.addAll(buildAliasValidators(actionClass, invocation, checkFile));
...
I think the code should look more like this :
...
Class actionClass = invocation.getAction().getClass();
// validators for the action class
validators.addAll(buildClassValidators(actionClass, checkFile));
validators.addAll(buildAliasValidators(actionClass, invocation, checkFile));
// looking for validators for every super class
actionClass = actionClass.getSuperclass();
while (!actionClass.equals(Object.class)) {
validators.addAll(buildClassValidators(actionClass, checkFile));
actionClass = actionClass.getSuperclass();
}
...