@Override
 public void clusterStateProcessed(String source, ClusterState oldState, ClusterState newState) {
   try {
     listener.clusterStateProcessed(source, oldState, newState);
   } catch (Exception e) {
     logger.error(
         (Supplier<?>)
             () ->
                 new ParameterizedMessage(
                     "exception thrown by listener while notifying of cluster state processed from [{}], old cluster state:\n"
                         + "{}\nnew cluster state:\n{}",
                     source,
                     oldState.prettyPrint(),
                     newState.prettyPrint()),
         e);
   }
 }