I think it's this bug: https://issues.apache.org/jira/browse/OWB-888

> From: [email protected]
> Date: Tue, 13 May 2014 16:40:41 +0200
> Subject: Re: Problem with OpenWebbeans when Iterating over 
> javax.enterprise.inject.Instance<T>
> To: [email protected]
> 
> Hi
> 
> this is an openwebbeans bug, you can open an issue
> 
> 
> Romain Manni-Bucau
> Twitter: @rmannibucau
> Blog: http://rmannibucau.wordpress.com/
> LinkedIn: http://fr.linkedin.com/in/rmannibucau
> Github: https://github.com/rmannibucau
> 
> 
> 2014-05-13 16:19 GMT+02:00 Markus F. Frisch <[email protected]>:
> > I get a DefinitionException when trying to iterate over an instance of 
> > org.apache.webbeans.inject.instance.InstanceImpl in the current snapshot of 
> > TomEE+ (i.e. in own 1.2.4).
> >
> > What I am trying to do is:
> >
> > ————————8<————————>8————————
> > @Stateless
> > public class JobOperator {
> >
> >     @Inject
> >     private Instance<MyBatchJob> batchJobs;
> >
> > …
> >
> >     private MyBatchJob findMatchingJob(String jobName) {
> >         MyBatchJob batchJob = null;
> >         for (MyBatchJob job : batchJobs) {
> >             if (job.getName().equalsIgnoreCase(jobName)) {
> >                 batchJob = job;
> >                 break;
> >             }
> >         }
> >         if (batchJob == null)
> >             throw new RuntimeException("There ain’t no Job named '" + 
> > jobName + "'.");
> >         return batchJob;
> >     }
> > ————————8<————————>8————————
> > MyBatchJob is a common interface implemented by all my BatchJobs.
> >
> > When this code is running I get the following Exception:
> >
> > ————————8<————————>8————————
> > org.apache.webbeans.exception.inject.DefinitionException: Unsupported type 
> > null
> > at org.apache.webbeans.util.ClassUtil.getClazz(ClassUtil.java:950)
> > at 
> > org.apache.webbeans.container.BeanManagerImpl.getEjbOrJmsProxyReference(BeanManagerImpl.java:804)
> > at 
> > org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:740)
> > at 
> > org.apache.webbeans.inject.instance.InstanceImpl.iterator(InstanceImpl.java:270)
> > at 
> > de.nobiscum.rs7030.batch.boundary.JobOperator.findMatchingJob(JobOperator.java:162)
> > ————————8<————————>8————————
> >
> > I took a look at org.apache.webbeans.inject.instance.InstanceImpl<T> and 
> > found the following:
> >
> > ————————8<————————>8————————
> >     public Iterator<T> iterator()
> >     {
> >         Set<Bean<?>> beans = resolveBeans();
> >         List<T> instances = new ArrayList<T>();
> >         parentCreationalContext.putInjectionPoint(injectionPoint);
> >         try
> >         {
> >             for(Bean<?> bean : beans)
> >             {
> >                 T instance = (T) 
> > webBeansContext.getBeanManagerImpl().getReference(bean,null, 
> > parentCreationalContext);
> > ————————8<————————>8————————
> >
> > It looks like this function is passing null as the beanType to 
> > getReference() which in gets handed down to ClassUtil.getClazz() which 
> > chokes on that.
> >
> > Am I doing something that is not supposed to work here? Or is this a bug? 
> > Should I file a bug report.
> >
> > Thanks for your help,
> > Markus Frisch
> >
> > --
> > Markus Frisch
> > [Prokurist / Authorized Representative]
> > nobisCum Deutschland GmbH
> >
> > [T] +49 9302 / 987 97 - 2633
> > [M] +49 173 / 91 88 058
> > [@] [email protected]<mailto:[email protected]>
> > [URL] http://www.nobisCum.de
> >
> > [Anschrift] Ostring 2-4, 97228 Rottendorf, Germany
> > [Registergericht] Würzburg, HRB 5159
> > [Geschäftsführer] Herbert Stieglitz, Hans-Peter Holl
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
                                          

Reply via email to