[ https://issues.apache.org/jira/browse/OWB-244?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
YING WANG updated OWB-244: -------------------------- Attachment: dispose2.jar test code for dependent and request scope @disposes > OWB injects a new object for @disposes injection point for dependent scope > --------------------------------------------------------------------------- > > Key: OWB-244 > URL: https://issues.apache.org/jira/browse/OWB-244 > Project: OpenWebBeans > Issue Type: Bug > Components: Context and Scopes > Affects Versions: 1.0.0 > Environment: windows > Reporter: YING WANG > Assignee: Gurkan Erdogdu > Fix For: 1.0.0 > > Attachments: dispose2.jar > > > 1. I am testing @disposes for dependent scope for the following bean. > However, the object passed in my dispose method is not the one > I first created by the producer method. It seems that OWB inject another new > one for my "@Disposes @QualifierHttp HttpHeader header" before invoking my > dispose method. > My producer method is invoked twice. The first one is valid. I have collect > the stack trace for the second one. I don't know how to fix this.. > 2. Possibly another small one for ClassUtil.checkParametrizedType(), > shouldn't the method go though the rest types if the first one is > ParameterizedType? > BTW, thanks a lot for fixing 241, it does work. > Ying > ===========Stack trace for the second invocation of producer > method================================= > Thread-119 creates > com.ibm.jcdi.test.disposes.httphea...@27422742(unknown=unknown,myIndex=1) > with the following stack trace: > com.ibm.jcdi.test.disposes.HttpHeaderProducer.generateDependentScopeHttpHeader(HttpHeaderProducer.java:29) > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48) > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) > java.lang.reflect.Method.invoke(Method.java:600) > org.apache.webbeans.inject.InjectableMethods.doInjection(InjectableMethods.java:80) > org.apache.webbeans.component.ProducerMethodBean.createDefaultInstance(ProducerMethodBean.java:168) > org.apache.webbeans.component.ProducerMethodBean.createInstance(ProducerMethodBean.java:137) > org.apache.webbeans.component.AbstractBean.create(AbstractBean.java:159) > org.apache.webbeans.context.DependentContext.getInstance(DependentContext.java:65) > org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:150) > org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:709) > org.apache.webbeans.component.AbstractBean.getDependent(AbstractBean.java:419) > org.apache.webbeans.inject.AbstractInjectable.injectForDependent(AbstractInjectable.java:142) > org.apache.webbeans.inject.AbstractInjectable.inject(AbstractInjectable.java:98) > <===== inject the parameters of my dispose method > org.apache.webbeans.inject.InjectableMethods.doInjection(InjectableMethods.java:67) > <===== try to invoke my dispose method > org.apache.webbeans.component.ProducerMethodBean.disposeDefault(ProducerMethodBean.java:227) > > org.apache.webbeans.component.ProducerMethodBean.dispose(ProducerMethodBean.java:203) > org.apache.webbeans.component.ProducerMethodBean.destroyInstance(ProducerMethodBean.java:189) > org.apache.webbeans.component.AbstractBean.destroy(AbstractBean.java:201) > org.apache.webbeans.context.creational.CreationalContextImpl.removeDependents(CreationalContextImpl.java:159) > org.apache.webbeans.context.creational.CreationalContextImpl.release(CreationalContextImpl.java:171) > org.apache.webbeans.component.AbstractBean.destroy(AbstractBean.java:198) > org.apache.webbeans.context.AbstractContext.destroyInstance(AbstractContext.java:200) > org.apache.webbeans.context.AbstractContext.destroy(AbstractContext.java:222) > org.apache.webbeans.context.ContextFactory.destroyRequestContext(ContextFactory.java:137) > org.apache.webbeans.lifecycle.EnterpriseLifeCycle.requestEnded(EnterpriseLifeCycle.java:139) > org.apache.webbeans.servlet.WebBeansConfigurationListener.requestDestroyed(WebBeansConfigurationListener.java:68) > ==========Test dependent Producer bean class for > @disposes======================================== > @ApplicationScoped > public class HttpHeaderProducer implements Serializable { > static ILog myLog = null; > > //dependent producer method > public static @Produces @QualifierHttp HttpHeader > generateDependentScopeHttpHeader( > @New HttpHeader header) throws Exception { > } > //disposer method > public static void dumpHttpHeader( > @Disposes @QualifierHttp HttpHeader header, > @QualifierDisposesTest(getID="3.3.x", getComments="Test > cases around @disposes.") ILog log) { > } > } > =============================================================================== -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.