As ordens dos parâmetros padrão de validação do bean?

Atualmente, estou tentando fornecer uma mensagem de validação personalizada usando validação de bean.

Atualmente usando spring mvc 3.1.1 + validação do bean apache.

No meu bean, eu especifico:

@Size(min=1, max=50)
private String title;

E nas minhas mensagens.propriedades:

Size.addForm.title=The title must not be empty and must not exceed {1} characters.

Da experiência, descobri que:

{0} refere-se a 'título'{1} refere-se ao máximo, que é 50{2} refere-se ao min, que é 1

e será exibido comoThe title must not be empty and must not exceed 50 characters. qual é correto.

Mas todos estes são de experimentos. Eu me perguntose há documentações indicando a ordem dos parâmetros para as restrições padrão ?

Eu tentei esperançosamente usandoSize.addForm.title=The title must not be empty and must not exceed {max} characters. baseando-se no ValidationMessages.properties padrão, mas acaba com NumberFormatException no{max}. Eu acho que tem algo a ver com as interpolações?

Atualizar

Assim, cada um deles falha de forma independente com NumberFormatException no{max} :

messages.properties : Size.addForm.title = O título não pode estar vazio e não deve exceder{max} personagens.messages.properties : Tamanho = O título não pode estar vazio e não deve exceder{max} personagens.messages.properties : javax.validation.constraints.Size.message = O título não pode estar vazio e não deve exceder{max} personagens.ValidationMessages.properties : Size.addForm.title = O título não pode estar vazio e não deve exceder{max} personagens.ValidationMessages.properties : Tamanho = O título não pode estar vazio e não deve exceder{max} personagens.

Este é o stacktrace:

java.lang.NumberFormatException: For input string: "max"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.text.MessageFormat.makeFormat(Unknown Source)
    at java.text.MessageFormat.applyPattern(Unknown Source)
    at java.text.MessageFormat.<init>(Unknown Source)
    at org.springframework.context.support.MessageSourceSupport.createMessageFormat(MessageSourceSupport.java:151)
    at org.springframework.context.support.ResourceBundleMessageSource.getMessageFormat(ResourceBundleMessageSource.java:281)
    at org.springframework.context.support.ResourceBundleMessageSource.resolveCode(ResourceBundleMessageSource.java:188)
    at org.springframework.context.support.AbstractMessageSource.getMessageInternal(AbstractMessageSource.java:205)
    at org.springframework.context.support.AbstractMessageSource.getMessage(AbstractMessageSource.java:146)
    at org.springframework.context.support.AbstractApplicationContext.getMessage(AbstractApplicationContext.java:1214)
    at org.springframework.web.servlet.support.RequestContext.getMessage(RequestContext.java:571)
    at org.springframework.web.servlet.support.BindStatus.initErrorMessages(BindStatus.java:177)
    at org.springframework.web.servlet.support.BindStatus.getErrorMessages(BindStatus.java:273)
    at org.springframework.web.servlet.tags.form.ErrorsTag.exposeAttributes(ErrorsTag.java:173)
    at org.springframework.web.servlet.tags.form.AbstractHtmlElementBodyTag.writeTagContent(AbstractHtmlElementBodyTag.java:48)
    at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:102)
    at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:79)

Este é o único que trabalha com o parâmetro nomeado,tem que ser ValidationMessages.properties e deve ser exatamente a chave que existe no pacote de recursos padrão pela implementação do jsr 303 :

ValidationMessages.properties&nbsp;: javax.validation.constraints.Size.message = você conhece wad, o tamanho deve estar entre{min}&nbsp;e{max}

Basicamente, a conclusão atual é, por padrão, que não posso usar parâmetros nomeados em minhas mensagens específicas. O parâmetro nomeadosó funciona&nbsp;quando eusubstituir a chave exata&nbsp;no resourcebundle jsr303 padrão&&&nbsp;quando eu uso o mesmo nome de arquivo jsr303 resourcebundle padrão, que éValidationMessages.properties

Eu prefiro evitar ter que jogar com interpolação por enquanto, daí a pergunta original sobre como descobrir que {0} ou {1} ou {2} se refere ao que na documentação.