try {
if (ex == null) {
l.listRecordingsResult(messageID, sender, clientID, recordings);
} else {
l.listRecordingsFailed(messageID, sender, clientID, ex.getMessage(), ex);
}
} finally {
// clean up
if (l instanceof ManagedRecordingsListenerWrapper) {
dataService.removeObject(l);