You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openwebbeans.apache.org by "Mark Struberg (JIRA)" <ji...@apache.org> on 2014/05/13 18:05:15 UTC
[jira] [Commented] (OWB-956) DefinitionException when iterateing
over instance of org.apache.webbeans.inject.instance.InstanceImpl
[ https://issues.apache.org/jira/browse/OWB-956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13996530#comment-13996530 ]
Mark Struberg commented on OWB-956:
-----------------------------------
Hi Markus!
Txs for the report. Working on it.
> DefinitionException when iterateing over instance of org.apache.webbeans.inject.instance.InstanceImpl
> ------------------------------------------------------------------------------------------------------
>
> Key: OWB-956
> URL: https://issues.apache.org/jira/browse/OWB-956
> Project: OpenWebBeans
> Issue Type: Bug
> Reporter: Markus Frisch
> Assignee: Mark Struberg
>
> 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.
--
This message was sent by Atlassian JIRA
(v6.2#6252)