Do not allow persistence callbacks to throw Exception
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / main / java / org / opendaylight / controller / cluster / raft / ReplicatedLogImpl.java
index c53cad68c5def14c0dae3718ffc01144235db5fe..c22f6f431bd4cf833ab6eb7c275563e9d357d386 100644 (file)
@@ -9,9 +9,9 @@ package org.opendaylight.controller.cluster.raft;
 
 import static java.util.Objects.requireNonNull;
 
-import akka.japi.Procedure;
 import java.util.Collections;
 import java.util.List;
+import java.util.function.Consumer;
 import org.opendaylight.controller.cluster.raft.persisted.DeleteEntries;
 import org.opendaylight.controller.cluster.raft.persisted.Snapshot;
 
@@ -93,7 +93,7 @@ final class ReplicatedLogImpl extends AbstractReplicatedLogImpl {
 
     @Override
     public boolean appendAndPersist(final ReplicatedLogEntry replicatedLogEntry,
-            final Procedure<ReplicatedLogEntry> callback, final boolean doAsync)  {
+            final Consumer<ReplicatedLogEntry> callback, final boolean doAsync)  {
 
         context.getLogger().debug("{}: Append log entry and persist {} ", context.getId(), replicatedLogEntry);
 
@@ -112,24 +112,18 @@ final class ReplicatedLogImpl extends AbstractReplicatedLogImpl {
     }
 
     private void persistCallback(final ReplicatedLogEntry persistedLogEntry,
-            final Procedure<ReplicatedLogEntry> callback) {
+            final Consumer<ReplicatedLogEntry> callback) {
         context.getExecutor().execute(() -> syncPersistCallback(persistedLogEntry, callback));
     }
 
-    @SuppressWarnings("checkstyle:illegalCatch")
     private void syncPersistCallback(final ReplicatedLogEntry persistedLogEntry,
-            final Procedure<ReplicatedLogEntry> callback) {
+            final Consumer<ReplicatedLogEntry> callback) {
         context.getLogger().debug("{}: persist complete {}", context.getId(), persistedLogEntry);
 
         dataSizeSinceLastSnapshot += persistedLogEntry.size();
 
         if (callback != null) {
-            try {
-                callback.apply(persistedLogEntry);
-            } catch (Exception e) {
-                context.getLogger().error("{}: persist callback failed", context.getId(), e);
-                throw new IllegalStateException("Persist callback failed", e);
-            }
+            callback.accept(persistedLogEntry);
         }
     }
 }