[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:46:18 EDT 2012


Manuel Hartl created WELD-1125:
----------------------------------

             Summary: 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.7.Final, 1.1.6.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