0 Replies Latest reply on Jul 21, 2011 10:56 AM by viniciuscarvalho.viniciusccarvalho.gmail.com

    toString requires a valid CDI context

    viniciuscarvalho.viniciusccarvalho.gmail.com

      Hi, I bumped with this while creating an extension. I've noticed that on my extension if I try to do a simple toString on my beanReference I get an error about the scope not being ready.


      This happens here:




      void afterDeploymentValidation(@Observes AfterDeploymentValidation add, final BeanManager beanManager){
                Set<Bean<?>> beans = beanManager.getBeans(CDICamelContext.class);
                CamelContext context = null;
                for(Bean b : beans){
                     context = (CamelContext) beanManager.getReference(b, CamelContext.class, beanManager.createCreationalContext(b));
                }
                if(context != null){
                     try {
                          logger.debug("starting camel context");
                          context.setPackageScanClassResolver(new JBossPackageScanClassResolver());
                          context.start();
                          createConsumers(context, beanManager);
                     } catch (Exception e) {
                          logger.error(e.getMessage(), e);
                     }
                }
           }



      On the createConsumers code, if I try to get a bean from beanmanager and access its toString() I get the exception. It's really strange that the WeldProxy when invoking the toString of the class actually looks for a context. Shouldn't those base methods be excluded on the invoke process?


      I'm just wondering if this is a possible bug or not.


      Regards