Use Throwables.propagate on ExecutionException
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5f1e4bca Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5f1e4bca Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5f1e4bca Branch: refs/heads/trunk Commit: 5f1e4bcad7d36feb97096c6149ad3c43f26f0fd9 Parents: 21380fc Author: Carl Yeksigian <c...@apache.org> Authored: Wed Feb 3 09:26:01 2016 -0500 Committer: Carl Yeksigian <c...@apache.org> Committed: Wed Feb 3 09:26:01 2016 -0500 ---------------------------------------------------------------------- src/java/org/apache/cassandra/db/Mutation.java | 3 ++- .../cassandra/db/commitlog/CommitLogReplayer.java | 14 ++++++++++++-- .../apache/cassandra/service/paxos/PaxosState.java | 3 ++- 3 files changed, 16 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f1e4bca/src/java/org/apache/cassandra/db/Mutation.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/Mutation.java b/src/java/org/apache/cassandra/db/Mutation.java index 1ba3740..9a26456 100644 --- a/src/java/org/apache/cassandra/db/Mutation.java +++ b/src/java/org/apache/cassandra/db/Mutation.java @@ -24,6 +24,7 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.atomic.AtomicLong; +import com.google.common.base.Throwables; import com.google.common.util.concurrent.Uninterruptibles; import org.apache.commons.lang3.StringUtils; import org.apache.cassandra.config.CFMetaData; @@ -217,7 +218,7 @@ public class Mutation implements IMutation } catch (ExecutionException e) { - throw new RuntimeException(e.getCause()); + Throwables.propagate(e.getCause()); } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f1e4bca/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java index b4472ed..33750f8 100644 --- a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java +++ b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java @@ -31,6 +31,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.zip.CRC32; import com.google.common.base.Predicate; +import com.google.common.base.Throwables; import com.google.common.collect.HashMultimap; import com.google.common.collect.Iterables; import com.google.common.collect.Multimap; @@ -568,7 +569,7 @@ public class CommitLogReplayer Runnable runnable = new WrappedRunnable() { - public void runMayThrow() throws ExecutionException + public void runMayThrow() { if (Schema.instance.getKSMetaData(mutation.getKeyspaceName()) == null) return; @@ -603,7 +604,16 @@ public class CommitLogReplayer if (newMutation != null) { assert !newMutation.isEmpty(); - Uninterruptibles.getUninterruptibly(Keyspace.open(newMutation.getKeyspaceName()).applyFromCommitLog(newMutation)); + + try + { + Uninterruptibles.getUninterruptibly(Keyspace.open(newMutation.getKeyspaceName()).applyFromCommitLog(newMutation)); + } + catch (ExecutionException e) + { + Throwables.propagate(e.getCause()); + } + keyspacesRecovered.add(keyspace); } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f1e4bca/src/java/org/apache/cassandra/service/paxos/PaxosState.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/service/paxos/PaxosState.java b/src/java/org/apache/cassandra/service/paxos/PaxosState.java index 3ecac99..d4fed51 100644 --- a/src/java/org/apache/cassandra/service/paxos/PaxosState.java +++ b/src/java/org/apache/cassandra/service/paxos/PaxosState.java @@ -23,6 +23,7 @@ package org.apache.cassandra.service.paxos; import java.util.concurrent.ExecutionException; import java.util.concurrent.locks.Lock; +import com.google.common.base.Throwables; import com.google.common.util.concurrent.Striped; import com.google.common.util.concurrent.Uninterruptibles; @@ -145,7 +146,7 @@ public class PaxosState } catch (ExecutionException e) { - throw new RuntimeException(e.getCause()); + Throwables.propagate(e.getCause()); } } else