logger.warn("error retrieving observer list", sqle);
return;
}
for (Iterator iterator=observers.iterator(); iterator.hasNext();) {
ObserverInfo observerInfo = (ObserverInfo)iterator.next();
ResourceReference resRef = new ResourceReference
(observerInfo.getSenderBase(),
packageId, processId, event.processKey());
InstanceResponseGenerator irg = new InstanceResponseGenerator
(observerRegistry, workflowService, resRef);
try {
sendStateChanged
(observerInfo.getObserverKey(), irg, stateEvent);
if (stateEvent instanceof ProcessClosedAuditEvent) {
ProcessData result
= ((ProcessClosedAuditEvent)stateEvent).result();
sendCompleted (observerInfo.getObserverKey(), irg, result);
}
} catch (IllegalStateException e) {
logger.warn ("Problem sending event to "
+ observerInfo.getObserverKey() + ": "
+ e.getMessage(), e);
try {
observerRegistry.unsubscribe(observerInfo.getObserverKey());
} catch (SQLException ee) {
logger.warn("error removing observer", ee);
return;
}
}