[ 
https://issues.jboss.org/browse/WELD-1125?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12690228#comment-12690228
 ] 

Ales Justin commented on WELD-1125:
-----------------------------------

Imo, your use case is wrong.
StackOwf comes from WELD-911 fix.

The real bug is that we don't find this with Weld validation phase.
(although ARQ does some funky stuff, which might evade validation, not sure ...)


                
> StackOverflowError: It is not possible to define producers in an arquillian 
> unit test
> -------------------------------------------------------------------------------------
>
>                 Key: WELD-1125
>                 URL: https://issues.jboss.org/browse/WELD-1125
>             Project: Weld
>          Issue Type: Bug
>          Components: Bootstrap and Metamodel API
>    Affects Versions: 1.1.6.Final, 1.1.7.Final, 1.1.8.Final
>         Environment: windows7, junit, arquillian 1.0.0.Final
>            Reporter: Manuel Hartl
>            Assignee: Marko Lukša
>             Fix For: 1.1.5.Final
>
>
> When i try to run the following unit test, it gives me a stackOverflowError 
> with weld 1.1.6 and 1.1.7 - but it worked with 1.1.5!
> the problem seems to be a recursive loop, while trying to initialize the unit 
> test itself for using its producer.
> when you move the Producer to an static innerclass and add it to the 
> shrinkwrap definition, this test works.
> package com.kobil.ssms.kernel.logic.licencing;
> import javax.enterprise.inject.Produces;
> import javax.inject.Inject;
> import org.jboss.arquillian.container.test.api.Deployment;
> import org.jboss.arquillian.junit.Arquillian;
> import org.jboss.shrinkwrap.api.ShrinkWrap;
> import org.jboss.shrinkwrap.api.asset.EmptyAsset;
> import org.jboss.shrinkwrap.api.spec.JavaArchive;
> import org.junit.Assert;
> import org.junit.Test;
> import org.junit.runner.RunWith;
> /**
>  * 
>  * @author Manuel Hartl / FlexSecure GmbH
>  *
>  */
> @RunWith(Arquillian.class)
> public class WeldInjectionStackOverflow {
>       @Deployment
>       public static JavaArchive createTestArchive() {
>               return ShrinkWrap.create(JavaArchive.class, 
> "test.jar").addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
>       }
>       public static interface Service {
>               public int dummy();
>       };
>       @Produces
>       Service getSevice() throws LicenceException {
>               return new Service() {
>                       @Override
>                       public int dummy() {
>                               return 0;
>                       }
>               };
>       }
>       @Inject
>       private Service service;
>       @Test
>       public void checkInjection() throws Exception {
>               Assert.assertEquals(0, service.dummy());
>       }
> }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

_______________________________________________
weld-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/weld-issues

Reply via email to