Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.1.8.1
-
Windows
-
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()