Uploaded image for project: 'XWork'
  1. XWork
  2. XW-649

ValidatorFactory assumes file:// schemes for validation definitions

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.0.4, 2.0.5
    • 2.1.2
    • Validators
    • 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)

      Attachments

        Activity

          People

            rainerh Rainer Hermanns
            batkinson Brent Atkinson
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: