[
https://issues.jboss.org/browse/SEAMFACES-165?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12603840#comment-12603840
]
Christian Kaltepoth commented on SEAMFACES-165:
-----------------------------------------------
I did some more research on this. Actually this seems to be a bug in Weld 1.1.0
and not in Seam Faces. Let me explain:
{{SeamApplicationWrapper}} waits for the {{PostConstructApplicationEvent}} and
then obtains the {{ApplicationFactory}} from the {{FactoryFinder}}. Then it
calls {{ApplicationFactory.setApplication()}} to install the Seam Faces wrapper.
With MyFaces the {{SeamApplicationWrapper}} gets the {{WeldApplicationFactory}}
from the {{FactoryFinder}}. Unfortunately {{SeamApplicationWrapper}} ignores
calls to {{setApplication()}} and simply delegates them to the underlying
{{ApplicationFactory}}. The problem here is that {{SeamApplicationWrapper}}
already holds a reference to the {{Application}} instance that it returns for
{{getApplication()}} and doesn't update this reference when
{{setApplication()}} is called. Therefore {{SeamApplicationWrapper}} will
return the old {{Application}} instance on future calls to {{getApplication()}}.
See the code of {{WeldApplicationFactory}}:
https://github.com/weld/core/blob/master/environments/servlet/core/src/main/java/org/jboss/weld/environment/servlet/jsf/WeldApplicationFactory.java
For Mojarra the situation is a bit different. When using Mojarra Seam Faces
calls {{setApplication()}} on Mohjarra's {{InjectionApplicationFactory}}, which
wraps {{SeamApplicationWrapper}}. As {{InjectionApplicationFactory}} implements
{{setApplication()}} correctly, the bug doesn't occur on Mojarra.
Does this sound reasonable? If you agree to my explanation I could open a
ticket for Weld regarding this.
> @Inject for Validators doesn't work with MyFaces
> ------------------------------------------------
>
> Key: SEAMFACES-165
> URL: https://issues.jboss.org/browse/SEAMFACES-165
> Project: Seam Faces
> Issue Type: Bug
> Components: Validation & Conversion
> Affects Versions: 3.0.1
> Environment: Tomcat 7.0.8, MyFaces 2.0.5, Weld 1.1.0
> Reporter: Christian Kaltepoth
>
> @Inject doesn't work for validators when using MyFaces. The fields are always
> null.
> If I run the application with Mojarra instead of MyFaces everything works
> fine.
> I'm note completely sure if it is a Seam Faces or a MyFaces issue.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
seam-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/seam-issues