[weld-issues] [JBoss JIRA] (WELD-1125) StackOverflowError: It is not possible to define producers in an arquillian unit test

Manuel Hartl (JIRA) jira-events at lists.jboss.org
Wed May 2 07:58:20 EDT 2012


     [ https://issues.jboss.org/browse/WELD-1125?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Manuel Hartl updated WELD-1125:
-------------------------------

    Affects Version/s: 1.1.8.Final

    
> 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
>             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

        


More information about the weld-issues mailing list