[weld-issues] [JBoss JIRA] (WELD-1125) StackOverflowError: It is not possible to define producers in an arquillian unit test
Ales Justin (JIRA)
jira-events at lists.jboss.org
Thu May 3 17:18:18 EDT 2012
[ 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
More information about the weld-issues
mailing list