aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alan Cabrera (JIRA)" <>
Subject [jira] Commented: (ARIES-12) BlueprintListener events are not delivered synchronously
Date Fri, 02 Oct 2009 05:49:23 GMT


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:
>             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.

View raw message