You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Lukasz Lenart (Jira)" <ji...@apache.org> on 2026/07/26 07:58:00 UTC

[jira] [Work started] (WW-3427) If you alias a property that uses a custom TypeConverter and it throws TypeConversionException the error is never caught

     [ https://issues.apache.org/jira/browse/WW-3427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Work on WW-3427 started by Lukasz Lenart.
-----------------------------------------
> If you alias a property that uses a custom TypeConverter and it throws TypeConversionException the error is never caught
> ------------------------------------------------------------------------------------------------------------------------
>
>                 Key: WW-3427
>                 URL: https://issues.apache.org/jira/browse/WW-3427
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core Interceptors
>    Affects Versions: 2.1.8.1
>         Environment: Windows
>            Reporter: Sloan Seaman
>            Assignee: Lukasz Lenart
>            Priority: Major
>              Labels: conversion, struts, type
>             Fix For: 7.3.0
>
>
> If you define an alias to a property like so:
> {code:java}
> @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\"}"
>     }
>     */
>   )
> })
> {code}
> and the property (say imageFiles/scanData) has a custom TypeConverter configured like so:
> {code:java}
> 	@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;
> 	}
> {code}{
> 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()}}
> 		



--
This message was sent by Atlassian Jira
(v8.20.10#820010)