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

    Details

    • Type: Bug
    • Status: Coding In Progress (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 7.1.6.GA, 7.2.8.GA, 7.3.1.GA
    • Fix Version/s: 7.3.3.GA
    • Component/s: EJB
    • Labels:
    • Target Release:
    • 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
    • QE Test Coverage:
      +

      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:
                  spyrkob Bartosz Spyrko-Smietanko
                  Reporter:
                  bmaxwell Brad Maxwell
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  7 Start watching this issue

                  Dates

                  • Created:
                    Updated: