Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-13515

Application does not fail when @Singleton @PostConstruct throws exception

    Details

    • Steps to Reproduce:
      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

      Description

      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.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  cfang Cheng Fang
                  Reporter:
                  cfang Cheng Fang
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  4 Start watching this issue

                  Dates

                  • Created:
                    Updated: