Isn't it cause we reuse a generic producer?

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau>

2017-12-18 13:01 GMT+01:00 John D. Ament <johndam...@apache.org>:

> That's good that this works. However, I wonder if my issue is specific to
> 3rd Party Bean creation?  Same problem seems to be on both OWB and Weld,
> which makes me think it's an impl issue, but I can't think of anything else
> required on the impl side.
>
> Bean.getTypes() correctly returns String[].class
> qualifiers are correct
>
> The create method on the bean is never invoked, the injection point is
> always null.
>
> John
>
> On Mon, Dec 18, 2017 at 3:59 AM Romain Manni-Bucau <rmannibu...@gmail.com>
> wrote:
>
> > Works for me:
> >
> > public class ArrayProducerTest extends AbstractUnitTest
> > {
> >
> >     @Test
> >     public void test()
> >     {
> >         startContainer(StringProducer.class);
> >
> >         final String[] produced1 = getInstance(String[].class);
> >         final StringProducer[] produced2 =
> > getInstance(StringProducer[].class);
> >
> >         Assert.assertEquals(1, produced1.length);
> >         Assert.assertEquals("string", produced1[0]);
> >
> >         Assert.assertEquals(1, produced2.length);
> >         Assert.assertNotNull(produced2[0]);
> >
> >         shutDownContainer();
> >
> >     }
> >
> >     public static class StringProducer
> >     {
> >         @Produces
> >         public String[] produces()
> >         {
> >             return new String[] { "string" };
> >         }
> >
> >         @Produces
> >         public StringProducer[] produces2()
> >         {
> >             return new StringProducer[] { this };
> >         }
> >     }
> >
> > }
> >
> >
> >
> > Romain Manni-Bucau
> > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > <https://rmannibucau.metawerx.net/> | Old Blog
> > <http://rmannibucau.wordpress.com> | Github <
> > https://github.com/rmannibucau> |
> > LinkedIn <https://www.linkedin.com/in/rmannibucau>
> >
> > 2017-12-18 9:15 GMT+01:00 Mark Struberg <strub...@yahoo.de.invalid>:
> >
> > > I think it should work.
> > >
> > > Could you please create a ticket?
> > >
> > > txs and LieGrue,
> > > strub
> > >
> > >
> > > > Am 18.12.2017 um 03:47 schrieb John D. Ament <johndam...@apache.org
> >:
> > > >
> > > > MP Config is adding arrays as a valid type for config properties.  In
> > > doing
> > > > so, without making any changes to Geronimo Config I get this failure
> > (not
> > > > what I'm expecting, I'm expecting no valid beans at this point):
> > > >
> > > > arquillianBeforeClass(org.eclipse.microprofile.config.
> > > tck.ClassConverterTest)
> > > > Time elapsed: 0.022 sec  <<< FAILURE!
> > > > org.apache.webbeans.exception.WebBeansConfigurationException:
> > > > java.lang.IllegalArgumentException: Can't determine the type for
> > Class<?
> > > > extends Object>[]
> > > > at org.apache.webbeans.config.BeansDeployer.deploy(
> > > BeansDeployer.java:351)
> > > > at
> > > > org.apache.webbeans.lifecycle.AbstractLifeCycle.
> bootstrapApplication(
> > > AbstractLifeCycle.java:137)
> > > > at
> > > > org.apache.webbeans.lifecycle.AbstractLifeCycle.startApplication(
> > > AbstractLifeCycle.java:103)
> > > > at
> > > >
> > org.apache.webbeans.arquillian.standalone.OwbStandaloneContainer.deploy(
> > > OwbStandaloneContainer.java:118)
> > > > at
> > > > org.jboss.arquillian.container.impl.client.container.
> > > ContainerDeployController$3.call(ContainerDeployController.java:161)
> > > > at
> > > > org.jboss.arquillian.container.impl.client.container.
> > > ContainerDeployController$3.call(ContainerDeployController.java:128)
> > > > at
> > > > org.jboss.arquillian.container.impl.client.container.
> > > ContainerDeployController.executeOperation(ContainerDeployController.
> > > java:271)
> > > > at
> > > > org.jboss.arquillian.container.impl.client.container.
> > > ContainerDeployController.deploy(ContainerDeployController.java:127)
> > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > > > at
> > > > sun.reflect.NativeMethodAccessorImpl.invoke(
> > > NativeMethodAccessorImpl.java:62)
> > > > at
> > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(
> > > DelegatingMethodAccessorImpl.java:43)
> > > > at java.lang.reflect.Method.invoke(Method.java:498)
> > > >
> > > > It seems that OWB can't handle array types as fields for injection.
> Is
> > > > this in fact expected?  This is even though for any given class T,
> > > > T[].class is a valid object.
> > >
> > >
> >
>

Reply via email to