@Override
 protected void setException(Exception exception) {
   super.setException(exception);
   if (callback != null) {
     callback.errorEstablishingStream(exception);
   }
 }
 @Override
 protected void setStatus(Status status) {
   Status oldStatus = getStatus();
   super.setStatus(status);
   if (callback != null) {
     callback.statusUpdated(oldStatus, status);
   }
 }
 @Override
 protected boolean updateStatus(Status oldStatus, Status newStatus) {
   boolean isUpdated = super.updateStatus(oldStatus, newStatus);
   if (callback != null && isUpdated) {
     callback.statusUpdated(oldStatus, newStatus);
   }
   return isUpdated;
 }