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

    Details

    • Flags:
      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

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

              Dates

              • Created:
                Updated: