hamid AGHAZZAF created MYFACES-3889:
---------------------------------------

             Summary: Handling PostConstruct annotations - wrong order : under 
wildfly-8.0.0.Final
                 Key: MYFACES-3889
                 URL: https://issues.apache.org/jira/browse/MYFACES-3889
             Project: MyFaces Core
          Issue Type: Bug
         Environment: wildfly-8.0.0.Final, Spring 3.1.0, myfaces 2.1.12
            Reporter: hamid AGHAZZAF
            Priority: Blocker


The specification states that managed bean methods annotated with 
@PostConstruct have to be called after the object is initialized and after 
dependency injection is performed. However, MyFaces calls those methods after 
the bean instance is created but before dependency injection is performed.

This issue was resolved for tomcat7 server 
(https://issues.apache.org/jira/browse/MYFACES-1761). But remain with WildFly 
8.0.Final .

Bellow the list of third party artifacts used with their versions :
activation-1.1.jar                                             
joda-time-2.3.jar                                       velocity-1.6.2.jar
aopalliance-1.0.jar                                            jrobin-1.5.9.jar 
                                       xml-apis-1.0.b2.jar
aspectjrt-1.6.12.jar                                           jsr305-1.3.9.jar 
                                       xmlbeans-2.3.0.jar
aspectjtools-1.6.2.jar                                         jstl-1.2.jar
aspectjweaver-1.6.11.jar                                       junit-3.8.1.jar
atmosphere-runtime-2.0.1.jar                                   log4j-1.2.12.jar
avalon-framework-4.1.3.jar                                     
logback-classic-0.9.30.jar
bcmail-jdk14-1.38.jar                                          
logback-core-0.9.30.jar
bcmail-jdk14-138.jar                                           logkit-1.0.1.jar
bcprov-jdk14-1.38.jar                                          mail-1.4.jar
bcprov-jdk14-138.jar                                           
myfaces-api-2.1.12.jar
bctsp-jdk14-1.38.jar                                           
myfaces-impl-2.1.12.jar
bsh-2.0b4.jar                                                  oro-2.0.8.jar
castor-1.2.jar                                                 poi-3.7.jar
cglib-3.0.jar                                                  poi-ooxml-3.7.jar
commons-beanutils-1.8.2.jar                                    
poi-ooxml-schemas-3.7.jar
commons-codec-1.3.jar                                          
primefaces-4.0.jar
commons-collections-3.2.jar                                    
primefaces-extensions-0.7.1.jar
commons-dbcp-1.2.2.jar                                         
servlet-api-2.3.jar
commons-digester-1.8.jar                                       
slf4j-api-1.6.2.jar
commons-fileupload-1.3.1.jar                                   
slf4j-log4j12-1.6.1.jar
commons-io-2.4.jar                                             
smoothness-1.0.10.jar
commons-lang-2.2.jar                                           snakeyaml-1.6.jar
commons-lang3-3.1.jar                                          
spring-aop-3.1.0.RELEASE.jar
commons-logging-1.1.jar                                        
spring-asm-3.1.0.RELEASE.jar
commons-pool-1.3.jar                                           
spring-aspects-3.1.0.RELEASE.jar
dom4j-1.6.1.jar                                                
spring-beans-3.1.0.RELEASE.jar
geronimo-stax-api_1.0_spec-1.0.jar                             
spring-binding-2.3.2.RELEASE.jar
groovy-all-2.0.1.jar                                           
spring-context-3.1.0.RELEASE.jar
gsfar-base-0.0.8-SNAPSHOT.jar                                  
spring-context-support-3.1.0.RELEASE.jar
gsfar-core-0.0.8-SNAPSHOT.jar                                  
spring-core-3.1.0.RELEASE.jar
gsfar-domain-0.0.8-SNAPSHOT.jar                                
spring-data-commons-1.5.2.RELEASE.jar
gson-2.2.2.jar                                                 
spring-data-commons-core-1.4.0.RELEASE.jar
guava-12.0.jar                                                 
spring-data-envers-0.1.0.RELEASE.jar
hibernate-commons-annotations-4.0.1.Final.jar                  
spring-data-jpa-1.3.4.RELEASE.jar
hibernate-core-4.1.7.Final.jar                                 
spring-expression-3.2.1.RELEASE.jar
hibernate-entitymanager-4.1.7.Final.jar                        
spring-faces-2.3.2.RELEASE.jar
hibernate-envers-4.1.7.Final.jar                               
spring-integration-core-2.2.2.RELEASE.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar                          
spring-integration-jdbc-2.2.2.RELEASE.jar
hsqldb-1.8.0.7.jar                                             
spring-jdbc-3.1.0.RELEASE.jar
itext-2.1.7.jar                                                
spring-js-2.3.2.RELEASE.jar
jackson-annotations-2.1.4.jar                                  
spring-js-resources-2.3.2.RELEASE.jar
jackson-core-2.1.4.jar                                         
spring-orm-3.1.0.RELEASE.jar
jackson-databind-2.1.4.jar                                     
spring-retry-1.0.2.RELEASE.jar
jasperreports-5.5.1.jar                                        
spring-security-config-3.1.4.RELEASE.jar
javamelody-core-1.49.0.jar                                     
spring-security-core-3.1.4.RELEASE.jar
javassist-3.15.0-GA.jar                                        
spring-security-web-3.1.4.RELEASE.jar
jboss-logging-3.1.0.GA.jar                                     
spring-test-3.1.0.RELEASE.jar
jboss-transaction-api_1.1_spec-1.0.0.Final.jar                 
spring-tx-3.1.0.RELEASE.jar
jcl-over-slf4j-1.7.1.jar                                       
spring-web-3.1.0.RELEASE.jar
jcommander-1.12.jar                                            
spring-webflow-2.3.2.RELEASE.jar
jcommon-1.0.15.jar                                             
spring-webmvc-3.2.1.RELEASE.jar
jdtcore-3.1.0.jar                                              
stax-api-1.0.1.jar
jfreechart-1.0.12.jar                                          testng-6.4.jar


I use spring profiles rather than maven profiles, this way, the same build (war 
file) is deploy-able in tomcat7 server as well as in Wildfly-8.0.0.Final.

I have toggled two types of breakpoints in one of my managed bean : 
- The first type is for the initialization method ( annotated with  
@PostConstruct )

- The second type is for setters of all properties aware of injection ( 
annotated with @ManagedProperty("#{xxx}") ).

When deploying to Tomcat7, every thing is well, all injections methods are 
invoked before the initialization method is called.

But, when running under Wildfly-8.0.0.Final, the initialization method is 
called before,  and this causes NullPointerException for properties not yet 
injected. This behavior is the same regardless the deployment is done from the 
administration console or from my eclipse workbench.

We don’t have a lot of choices regarding the version of myfaces to use, as the 
only installer provided for adding support of myfaces to wildFly contains the 
version  2.1.12. And it's not a problem for continue with this version of 
myfaces. The installer is down-loadable from nexus : 
https://repository.jboss.org/nexus/index.html#nexus-search;gav~org.wildfly~wildfly-jsf-installer~~~

 Thanks a lot in advance for your response.





--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to