Uploaded image for project: 'Struts 2'
  1. Struts 2
  2. WW-3427

If you alias a property that uses a custom TypeConverter and it throws TypeConversionException the error is never caught

    XMLWordPrintableJSON

Details

    • Important

    Description

      If you define an alias to a property like so:
      @Actions({
      @Action(value="/icc/saveScan",
      interceptorRefs=@InterceptorRef("ptiDefault"),
      results=

      { @Result(name="input", location="/error.jsp"), @Result(name="success", location="/success.jsp") }

      ,
      params={"aliases",
      "#

      {\"plateId\" : \"plate\", " + "\"machineAbbr\" : \"machine\", "+ "\"imageFiles\" : \"scanData\"}

      "}
      */
      )
      })

      and the property (say imageFiles/scanData) has a custom TypeConverter configured like so:
      @ConversionErrorFieldValidator(type = ValidatorType.FIELD,
      key="invalid.fieldvalue.xxx",
      message = "well not found or imageFiles not in format: file,wellId|file,wellId|...",
      shortCircuit=true)
      @TypeConversion(rule = ConversionRule.COLLECTION,
      converter = "com.ptilabs.icc.action.ScanData")
      public void setScanData(List<ScanData> imageFiles)

      { this.imageFiles = imageFiles; }

      If the TypeConverter throws a TypeConversionException the exception is never caught by the ConversionErrorInterceptor or ConversionErrorFieldValidator.

      If I disable the aliasing and rename the method setImageFiles everything works correctly.

      I'm trying to debug on my own but I can't find the class responsible for catching the TypeConversionException and placing it in the invocationContext.getConversionErrors()

      Attachments

        Activity

          People

            Unassigned Unassigned
            blee1 Sloan Seaman
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: