public class DataChangeListener extends AbstractUntypedActor {
private static final Logger LOG = LoggerFactory.getLogger(DataChangeListener.class);
private final AsyncDataChangeListener<YangInstanceIdentifier, NormalizedNode<?, ?>> listener;
private boolean notificationsEnabled = false;
public class DataChangeListener extends AbstractUntypedActor {
private static final Logger LOG = LoggerFactory.getLogger(DataChangeListener.class);
private final AsyncDataChangeListener<YangInstanceIdentifier, NormalizedNode<?, ?>> listener;
private boolean notificationsEnabled = false;
- public DataChangeListener(AsyncDataChangeListener<YangInstanceIdentifier,
- NormalizedNode<?, ?>> listener) {
+ public DataChangeListener(AsyncDataChangeListener<YangInstanceIdentifier, NormalizedNode<?, ?>> listener) {
- this.listener.onDataChanged(change);
+ try {
+ this.listener.onDataChanged(change);
+ } catch (RuntimeException e) {
+ LOG.error( String.format( "Error notifying listener %s", this.listener ), e );
+ }
// It seems the sender is never null but it doesn't hurt to check. If the caller passes in
// a null sender (ActorRef.noSender()), akka translates that to the deadLetters actor.
if(getSender() != null && !getContext().system().deadLetters().equals(getSender())) {
// It seems the sender is never null but it doesn't hurt to check. If the caller passes in
// a null sender (ActorRef.noSender()), akka translates that to the deadLetters actor.
if(getSender() != null && !getContext().system().deadLetters().equals(getSender())) {