[ 
https://issues.apache.org/jira/browse/ARIES-12?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12761480#action_12761480
 ] 

Alan Cabrera commented on ARIES-12:
-----------------------------------

As I read the code it seems that events are already placed on a queue.  
Executors.newSingleThreadExecutor() returns an ExecutorService that uses a 
queue to feed the "pool".  Is there a TCK test that's failing on this?

However, as I read the spec more carefully it states that the events must be 
delivered synchronously.  "These events are send synchronously with their 
cause. That is, all listeners must be notified before the Blueprint Container 
continues to the next step."  So we must not use a thread pool to deliver.  

It also states "Blueprint Listener services that throw Exceptions or do not 
return in a reasonable time as judged by the Blueprint extender implementation, 
should be logged, if possible, and further ignored."  We don't do this.

> BlueprintListener events are not delivered synchronously
> --------------------------------------------------------
>
>                 Key: ARIES-12
>                 URL: https://issues.apache.org/jira/browse/ARIES-12
>             Project: Aries
>          Issue Type: Bug
>          Components: Blueprint
>            Reporter: Rick McGuire
>            Assignee: Alan Cabrera
>
> Section 121.12 of the blueprint specification has a requirement that 
> blueprint events be delivered to BlueprintListener.blueprintEvent() methods.  
> However, the implementation of the event dispatcher submits the callbacks for 
> each event to an executor for processing, leading to race conditions where 
> events can be delivered out of order.  These events really should be placed 
> on a queue and all callbacks completely processed in order. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to