[weld-issues] [JBoss JIRA] Commented: (CDITCK-168) extensions.processBean.ProcessBean event count issue
Scott Ferguson (JIRA)
jira-events at lists.jboss.org
Sat Jun 26 14:00:46 EDT 2010
[ https://jira.jboss.org/browse/CDITCK-168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12537142#action_12537142 ]
Scott Ferguson commented on CDITCK-168:
---------------------------------------
No, that's not correct. Your #3 is correct, but your conclusion following #3 contradicts it.
There are 2 fired events (ProcessBean<Cowshed> and ProcessProducerMethod<Cowshed,Cow>), which match 3 observers.
The method which observes ProcessBean<Cowshed> will _not_ be called for ProcessProducerMethod<Cowshed,Cow> because ProcessBean<Cowshed> is not in the closure of ProcessProducerMethod<Cowshed,Cow> (because the extended interface of ProcessProducerMethod<T,X> is ProcessBean<X>, not ProcessBean<T>.)
ProcessProducerMethod<Cowshed,Cow> will match 2 observers, not 3: ProcessBean<Cow> but not ProcessBean<Cowshed>, plus the ProcessProducerMethod observer itself. In other words, the ProcessProducerMethod only matches one additional ProcessBean observer (Cow), not both Cow and Cowshed.
If you can point to a reason why the ProcessProducerMethod<Cowshed,Cow> would match the observer ProcessBean<Cowshed> (or why the producer processing would fire 2 events instead of 1) please explain further because I can't see how the Cowshed observer matches the ProcessProducerMethod.
> extensions.processBean.ProcessBean event count issue
> ----------------------------------------------------
>
> Key: CDITCK-168
> URL: https://jira.jboss.org/browse/CDITCK-168
> Project: CDI TCK
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Tests
> Affects Versions: 1.0.2.CR1
> Environment: any
> Reporter: Scott Ferguson
>
> The issue is in an assertion in extensions.processBean.ProcessBeanTest, counting the number of times the Cowshed bean raises a discovery event. There are three tests affected by this issue:
> extensions.processBean.ProcessBeanTest
> testProcessProducerFieldEvent()
> testProcessProducerMethodEvent()
> extensions.processBean.ProcessSessionBeanTest
> testProcessSessionBeanEvent()
> specifically
> testProcessProducerMethodEvent()
> 79: assert ProcessBeanObserver.getCowShedProcessBeanCount() == 2;
>
> testProcessProducerFieldEvent()
> 102: assert ProcessBeanObserver.getChickenHutchProcessBeanCount() == 2;
> testProcessSessionBeanEvent()
> 63: assert ProcessBeanObserver.getElephantProcessBeanCount() == 2;
> But I can't see how this number is 2 instead of 1. The Cowshed looks like:
> public class Cowshed {
> @Produces public Cow getDaisy() { ... }
> }
> So there should be 3 relevant extension events fired:
> ProcessBean<Cowshed>
> ProcessProducerMethod<Cowshed, Cow>
> ProcessBean<Cow>
> I double checked the ProcessProducerMethod interface:
> ProcessProducerMethod<T,X> extends ProcessBean<X>
> which is where the ProcessBean<Cow> comes from, but I don't see where
> the 2nd ProcessBean<Cowshed> comes from.
> The ProcessSessionBean issue is essentially the same
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the weld-issues
mailing list