[jboss-jira] [JBoss JIRA] (WFLY-11956) @PostConstruct on @ApplicationScoped bean called too late in case @Valid is annotated on a business method
Ronald Sigal (Jira)
issues at jboss.org
Thu Apr 25 12:34:00 EDT 2019
[ https://issues.jboss.org/browse/WFLY-11956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13726790#comment-13726790 ]
Ronald Sigal commented on WFLY-11956:
-------------------------------------
Hi [~gunnar.morling], thanks for checking in. I agree that everything suggests that getHelloGreeting() *should* be executed during validation of properties (well, once, anyway). I.e., I agree that for the most part, we're not talking about a bug. Indeed, my two configuration suggestions should be considered feature requests.
As far as I can see, there is no easy solution that we can offer, which sends us back to the possibility of renaming the get methods. It reminds me of a joke my father used to tell. A guy goes to the doctor and says, "Doc, it hurts when I raise my arm." The doctor says, "So don't raise your arm."
Sorry, [~christian.zambrano], I don't mean to make light of the problem.
Two things that can, and should be done are:
1. RESTEasy should look for a @PostConstruct method and, in its presence, initiate validation from JaxrsInjectionTarget.postConstruct().
2. The two calls to getHelloGreeting() should be investigated in Hibernate Validator.
Does anyone else have any suggestions?
> @PostConstruct on @ApplicationScoped bean called too late in case @Valid is annotated on a business method
> ----------------------------------------------------------------------------------------------------------
>
> Key: WFLY-11956
> URL: https://issues.jboss.org/browse/WFLY-11956
> Project: WildFly
> Issue Type: Bug
> Components: Bean Validation, REST
> Affects Versions: 16.0.0.Final
> Reporter: Joerg Baesner
> Assignee: Ronald Sigal
> Priority: Major
> Attachments: logging.txt, playground.zip
>
>
> Having a bean class with {{@ApplicationScoped}}, which has a {{@PostConstruct}} and is implementing the following _Interface_:
> {code}
> @Path("/validated")
> public interface ValidatedJaxRsInterface {
>
> @GET
> @Valid
> @Produces(MediaType.APPLICATION_JSON)
> GreetingModel getHelloGreeting();
> }
> {code}
> will result in calling the {{getHelloGreeting}} method of the implementation class twice *_before_* the {{@PostConstruct}} is getting executed.
> This can be reproduced with the attached reproducer application...
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
More information about the jboss-jira
mailing list