[weld-issues] [JBoss JIRA] Commented: (CDITCK-168) extensions.processBean.ProcessBean event count issue

Pete Muir (JIRA) jira-events at lists.jboss.org
Sat Jun 26 12:06:46 EDT 2010

    [ https://jira.jboss.org/browse/CDITCK-168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12537126#action_12537126 ] 

Pete Muir commented on CDITCK-168:

Scott, on more review, I think this test is correct.

1) 10.2 - Observer Resolution "•	The event object is assignable to the observed event type, taking type parameters into consideration."
2) ProcessProducerField<T, X> extends ProcessBean<X>
3) As you say, there will be three extension events called -  ProcessBean<Cowshed>, ProcessProducerMethod<Cowshed, Cow>, ProcessBean<Cow> 

Therefore a method which observes ProcessBean<Cowshed> will be called once for the managed bean Cowshed, and once for the producer field on Cowshed which produces Cow.

So, what you are seeing is not the event being sent multiple times, but the same event being observed by more than one observer method. IOW we end up with.

> 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