Slava Semushin
Slava Semushin

Reputation: 15214

GenericConversionService.convert() throws IllegalArgumentException after updating to Spring 3.2.1

After updating Spring from 3.2.0.RELEASE to 3.2.1.RELEASE I've got following error:

[skip]
java.lang.IllegalArgumentException: The source to convert from must be an instance of @org.hibernate.validator.constraints.NotEmpty @javax.validation.constraints.Size @javax.validation.constraints.Pattern java.lang.String; instead it was a ru.mystamps.web.model.ActivateAccountForm
    at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:164)
    at org.springframework.validation.AbstractPropertyBindingResult.formatFieldValue(AbstractPropertyBindingResult.java:125)
    at org.springframework.validation.AbstractBindingResult.getFieldValue(AbstractBindingResult.java:222)
    at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:120)
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:179)
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:199)
    at org.springframework.web.servlet.tags.form.LabelTag.autogenerateFor(LabelTag.java:130)
    at org.springframework.web.servlet.tags.form.LabelTag.resolveFor(LabelTag.java:120)
    at org.springframework.web.servlet.tags.form.LabelTag.writeTagContent(LabelTag.java:90)
    at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:103)
    at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80)
    at org.apache.jsp.WEB_002dINF.tiles.body.account.activate_jsp._jspx_meth_form_label_2(activate_jsp.java:667)
    at org.apache.jsp.WEB_002dINF.tiles.body.account.activate_jsp._jspService(activate_jsp.java:224)
[skip]

Model declaration:

@FieldsMismatch(first = "login", second = "password")
public class ActivateAccountForm implements ActivateAccountDto {                                    
     @Size(max = ValidationRules.LOGIN_MAX_LENGTH)
    private String login;

    ...
}

Controller:

@RequestMapping(value = Url.ACTIVATE_ACCOUNT_PAGE, method = RequestMethod.POST)                 
public String processActivationForm(@Valid ActivateAccountForm form, BindingResult result) {
    ...
}

What I have doing wrong in this case?

Upvotes: 2

Views: 832

Answers (1)

Phil Webb
Phil Webb

Reputation: 8622

This sounds like a potential bug but I am having trouble replicating it. Could you provide some more information on https://jira.springsource.org/browse/SPR-10243

Upvotes: 1

Related Questions