Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-19447

[GSS](7.3.z) WFLY-13515 - Application does not fail when @Singleton @PostConstruct throws exception

XMLWordPrintable

    • +
    • Hide

      Deploy helloWorld.ear

      Start ./bin/standalone.sh -Dfail
      Try to access the servlets in the ear:
      http://localhost:8080/one/servlet
      http://localhost:8080/three/servlet

      The sub deployments are not accessible while the Singleton is not finished with its PostConstruct, so this part works:
      Start ./bin/standalone.sh -Dsleep=60
      Try to access the servlets in the ear:
      http://localhost:8080/one/servlet
      http://localhost:8080/three/servlet

      Show
      Deploy helloWorld.ear Start ./bin/standalone.sh -Dfail Try to access the servlets in the ear: http://localhost:8080/one/servlet http://localhost:8080/three/servlet The sub deployments are not accessible while the Singleton is not finished with its PostConstruct, so this part works: Start ./bin/standalone.sh -Dsleep=60 Try to access the servlets in the ear: http://localhost:8080/one/servlet http://localhost:8080/three/servlet

      In EAP 6.4 , sub deployments were accessible before all Singleton's PostConstruct were finished, this was fixed via [1]. After this fix if an exception was thrown from PostConstruct, then the whole deployment was in a failed state as well. EAP 7.0 works the same as EAP 6.4 after the fix.

      In EAP 7.3/7.2/7.1 when the Singleton throws an exception, the sub deployments are accessible.

      [1] https://bugzilla.redhat.com/show_bug.cgi?id=1310908

      EJB 3.1 spec, section 4.8.1:

      If the Startup annotation appears on the Singleton bean class or if the Singleton has been designated via the deployment descriptor as requiring eager initialization, the container must initialize the Singleton bean instance during the application startup sequence. The container must initialize all such startup-time Singletons before any external client requests (that is, client requests originating outside of the application) are delivered to any enterprise bean components in the application.

              spyrkob Bartosz Spyrko-Smietanko
              rhn-support-bmaxwell Brad Maxwell
              Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

                Created:
                Updated:
                Resolved: