Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.0.4, 2.0.5
-
None
-
JBossAS 5CR1 Win32
Description
When migrating an existing application to the new version of JBoss, failures are encountered when loading -validation.xml files. ValidatorFactory scans for definitions by scanning the classpath, and blindly assumes that the returned resource URIs can be used to instantiate java.io.File objects. The actual URLs returned use the scheme vfszip://... not file:/// so it fails. The offending line is ValidatorFactory:323 (Xwork 2.0.5). The problem is more fundamental than this line however, because this code actually assumes that the resources are accessible on the file system rather than using the resource API.
java.lang.IllegalArgumentException: URI scheme is not "file"
at java.io.File.<init>(File.java:338)
at com.opensymphony.xwork2.validator.ValidatorFactory.parseValidators(ValidatorFactory.java:323)
at com.opensymphony.xwork2.validator.ValidatorFactory.<clinit>(ValidatorFactory.java:230)
at com.opensymphony.xwork2.validator.ValidatorFileParser.addValidatorConfigs(ValidatorFileParser.java:192)
at com.opensymphony.xwork2.validator.ValidatorFileParser.parseActionValidatorConfigs(ValidatorFileParser.java:72)
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.loadFile(AnnotationActionValidatorManager.java:361)
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.buildClassValidatorConfigs(AnnotationActionValidatorManager.java:252)
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.buildValidatorConfigs(AnnotationActionValidatorManager.java:340)
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.getValidators(AnnotationActionValidatorManager.java:69)
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.validate(AnnotationActionValidatorManager.java:138)
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.validate(AnnotationActionValidatorManager.java:113)
at com.opensymphony.xwork2.validator.AnnotationActionValidatorManager.validate(AnnotationActionValidatorManager.java:100)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doBeforeInvocation(ValidationInterceptor.java:142)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:148)