[weld-dev] Application scoped bean and its lifecycle

Martin Kouba mkouba at redhat.com
Mon May 22 03:48:43 EDT 2017


Hi Alex,

this looks really weird. Could you try to print out the event payload, 
e.g. System.out.println(init)?

Also you should be always very careful when using code inside the 
no-args constructor of a normal-scoped bean -> it will be also executed 
when creating a client proxy. In your case, if you do @Inject Test and 
invoke any method then you will also see "Test was created" printed twice.

Martin

Dne 22.5.2017 v 08:50 Alex Sviridov napsal(a):
> Hi all
> 
> I use pax-cdi -1.0.0.RC2 and weld 2.3.5.Final and this is my test class:
> 
> import javax.enterprise.context.ApplicationScoped;
> import javax.enterprise.context.Destroyed;
> import javax.enterprise.context.Initialized;
> import javax.enterprise.event.Observes;
> 
> @ApplicationScoped
> public class Test {
> 
>      public Test() {
>          System.out.println("Test was created.");
>      }
> 
>      public void init(@Observes @Initialized(ApplicationScoped.class) Object
> init) {
>          System.out.println("Test was initialized");
>      }
> 
>      public void destroy(@Observes @Destroyed(ApplicationScoped.class)
> Object init) {
>          System.out.println("Test was destroyed.");
>      }
> }
> 
> When I start test-bundle I see the following output:
> Test was created.
> Test was initialized
> Test was initialized
> When I stop test-bundle I see the following output:
> Test was destroyed.
> Test was created.
> Test was destroyed.
> 
> So as result this bean was two times created, two times initialized and two
> times destroyed.
> 
> I expected that this bean must be once created, one initialized and once
> destroyed.
> 
> Is this a bug that must be reported or my mistake?
> 
> -- 
> Alex Sviridov
> 
> 
> _______________________________________________
> weld-dev mailing list
> weld-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/weld-dev
> 

-- 
Martin Kouba
Senior Software Engineer
Red Hat, Czech Republic


More information about the weld-dev mailing list