[
https://jira.jboss.org/browse/CDITCK-168?page=com.atlassian.jira.plugin.s...
]
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