diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/machines/tx/ChunkedTransaction.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/machines/tx/ChunkedTransaction.java index e2cab05e54212..89ccccdfac3e9 100644 --- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/machines/tx/ChunkedTransaction.java +++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/machines/tx/ChunkedTransaction.java @@ -60,29 +60,9 @@ public void close() { if ( channel != null ) { - try - { - channel.close(); - } - catch ( Throwable t ) - { - errorHandler.add( t ); - } - } - if ( !chunks.isEmpty() ) - { - for ( ByteBuf byteBuf : chunks ) - { - try - { - ReferenceCountUtil.release( byteBuf ); - } - catch ( Throwable t ) - { - errorHandler.add( t ); - } - } + errorHandler.execute( () -> channel.close() ); } + chunks.forEach( byteBuf -> errorHandler.execute( () -> ReferenceCountUtil.release( byteBuf ) ) ); } } diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/helper/ErrorHandler.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/helper/ErrorHandler.java index fdbcb357375e3..807eac1165a19 100644 --- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/helper/ErrorHandler.java +++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/helper/ErrorHandler.java @@ -44,14 +44,7 @@ public static void runAll( String description, ThrowingRunnable... actions ) thr { for ( ThrowingRunnable action : actions ) { - try - { - action.run(); - } - catch ( Throwable e ) - { - errorHandler.add( e ); - } + errorHandler.execute( action ); } } } @@ -61,6 +54,18 @@ public ErrorHandler( String message ) this.message = message; } + public void execute( ThrowingRunnable throwingRunnable ) + { + try + { + throwingRunnable.run(); + } + catch ( Throwable e ) + { + throwables.add( e ); + } + } + public void add( Throwable throwable ) { throwables.add( throwable ); diff --git a/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/discovery/Cluster.java b/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/discovery/Cluster.java index c255c301b10b5..ef5eacda60137 100644 --- a/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/discovery/Cluster.java +++ b/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/discovery/Cluster.java @@ -264,18 +264,11 @@ public static void shutdownCoreMembers( Collection members ) @SuppressWarnings( "unchecked" ) private static void shutdownMembers( Collection clusterMembers, ErrorHandler errorHandler ) { - try + errorHandler.execute( () -> combine( invokeAll( "cluster-shutdown", clusterMembers, cm -> { - combine( invokeAll( "cluster-shutdown", clusterMembers, cm -> - { - cm.shutdown(); - return null; - } ) ).get(); - } - catch ( Exception e ) - { - errorHandler.add( e ); - } + cm.shutdown(); + return null; + } ) ).get() ); } private static , R> List> invokeAll( String threadName, Collection members,