Uploaded image for project: 'DeltaSpike'
  1. DeltaSpike
  2. DELTASPIKE-1199

Problems with ContextControl and Weld ContainerInitialized, ContainerShutdown event.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.7.1
    • 1.7.2
    • CdiControl
    • None

    Description

      No replies in user mail list. So I submit an issue here. And I think it's a bug as well.

      I have an @ApplicationScoped bean. It observes ContainerInitialized and ContainerShutdown event.

      Kernel.java
      public Kernel(){
          System.out.println("Kernel constructed");
      }
      
      public void onContainerInitialized(@Observes ContainerInitialized event, @Parameters List<String> parameters) {
          System.out.println("container initialized");
      }
      
      public void onContainerShutdown(@Observes ContainerShutdown event){
          System.out.println("container shutdown");
      }
      

      Then the kernel is constructed twice with the code below, one after boot, one after shutdown.

      Test.java
      public class Test {
          public static void main(String[] args) {
              CdiContainer cdiContainer = CdiContainerLoader.getCdiContainer();
              cdiContainer.boot();
      
              // Starting the application-context enables use of @ApplicationScoped beans
              ContextControl contextControl = cdiContainer.getContextControl();
              contextControl.startContext(ApplicationScoped.class);
      
              // You can use CDI here
              contextControl.stopContext(ApplicationScoped.class);
              cdiContainer.shutdown();
          }
      }
      

      If I remove the ContextControl related code. Then it is constructed only once after boot.

      If I keep the ContextControl related code and remove the observation of ContainerInitialized. Then it is constructed only after shutdown.
      If I keep the ContextControl related code and remove the observation of ContainerShutdown. Then it is constructed only after boot.

      What I expect is it is constructed only once after boot even I keep the ContextControl related code.

      Attachments

        Activity

          People

            manovotn Matej Novotny
            Seto Seto
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: