Do not catch throwable

Today throughout the codebase, catch throwable is used with reckless
abandon. This is dangerous because the throwable could be a fatal
virtual machine error resulting from an internal error in the JVM, or an
out of memory error or a stack overflow error that leaves the virtual
machine in an unstable and unpredictable state. This commit removes
catch throwable from the codebase and removes the temptation to use it
by modifying listener APIs to receive instances of Exception instead of
the top-level Throwable.

Relates elastic/elasticsearch#2694

Original commit: elastic/x-pack-elasticsearch@7ecdd7d978
This commit is contained in:
Jason Tedor 2016-07-04 08:41:08 -04:00 committed by GitHub
parent 29cf28bbde
commit 1cd53c41e2
65 changed files with 216 additions and 258 deletions

View File

@ -165,14 +165,15 @@ public class ScriptConditionTests extends ESTestCase {
public void testScriptConditionThrowException() throws Exception { public void testScriptConditionThrowException() throws Exception {
ScriptServiceProxy scriptService = getScriptServiceProxy(tp); ScriptServiceProxy scriptService = getScriptServiceProxy(tp);
ExecutableScriptCondition condition = new ExecutableScriptCondition( ExecutableScriptCondition condition = new ExecutableScriptCondition(
new ScriptCondition(Script.inline("assert false").build()), logger, scriptService); new ScriptCondition(Script.inline("null.foo").build()), logger, scriptService);
SearchResponse response = new SearchResponse(InternalSearchResponse.empty(), "", 3, 3, 500L, new ShardSearchFailure[0]); SearchResponse response = new SearchResponse(InternalSearchResponse.empty(), "", 3, 3, 500L, new ShardSearchFailure[0]);
WatchExecutionContext ctx = mockExecutionContext("_name", new Payload.XContent(response)); WatchExecutionContext ctx = mockExecutionContext("_name", new Payload.XContent(response));
ScriptCondition.Result result = condition.execute(ctx); ScriptCondition.Result result = condition.execute(ctx);
assertThat(result, notNullValue()); assertThat(result, notNullValue());
assertThat(result.status(), is(Condition.Result.Status.FAILURE)); assertThat(result.status(), is(Condition.Result.Status.FAILURE));
assertThat(result.reason(), notNullValue()); assertThat(result.reason(), notNullValue());
assertThat(result.reason(), containsString("Assertion")); assertThat(result.reason(), containsString("NullPointerException"));
assertThat(result.reason(), containsString("Cannot get property 'foo' on null object"));
} }
public void testScriptConditionReturnObject() throws Exception { public void testScriptConditionReturnObject() throws Exception {

View File

@ -509,7 +509,7 @@ public class TransportGraphExploreAction extends HandledTransportAction<GraphExp
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
listener.onFailure(e); listener.onFailure(e);
} }
}); });
@ -711,13 +711,13 @@ public class TransportGraphExploreAction extends HandledTransportAction<GraphExp
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
listener.onFailure(e); listener.onFailure(e);
} }
}); });
} catch (Throwable t) { } catch (Exception e) {
logger.error("unable to execute the graph query", t); logger.error("unable to execute the graph query", e);
listener.onFailure(t); listener.onFailure(e);
} }
} }

View File

@ -270,11 +270,10 @@ public class GraphTests extends ESSingleNodeTestCase {
try { try {
GraphExploreResponse response = grb.get(); GraphExploreResponse response = grb.get();
if (response.getShardFailures().length > 0) { if (response.getShardFailures().length > 0) {
throw ((ShardSearchFailure) response.getShardFailures()[0]).getCause(); expectedError = response.getShardFailures()[0].getCause();
} }
} catch (Throwable rte) { } catch (Exception rte) {
expectedError = rte; expectedError = rte;
} }
assertNotNull(expectedError); assertNotNull(expectedError);
String message = expectedError.toString(); String message = expectedError.toString();

View File

@ -59,7 +59,7 @@ public class TransportDeleteLicenseAction extends TransportMasterNodeAction<Dele
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
listener.onFailure(e); listener.onFailure(e);
} }
}); });

View File

@ -61,7 +61,7 @@ public class TransportPutLicenseAction extends TransportMasterNodeAction<PutLice
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
listener.onFailure(e); listener.onFailure(e);
} }
}); });

View File

@ -427,8 +427,8 @@ public class LicensesService extends AbstractLifecycleComponent implements Clust
} }
@Override @Override
public void onFailure(String source, @Nullable Throwable t) { public void onFailure(String source, @Nullable Exception e) {
logger.error("unexpected failure during [{}]", t, source); logger.error("unexpected failure during [{}]", e, source);
} }
}); });

View File

@ -88,8 +88,8 @@ public abstract class AbstractLicensesIntegrationTestCase extends ESIntegTestCas
} }
@Override @Override
public void onFailure(String source, @Nullable Throwable t) { public void onFailure(String source, @Nullable Exception e) {
logger.error("error on metaData cleanup after test", t); logger.error("error on metaData cleanup after test", e);
} }
}); });
latch.await(); latch.await();

View File

@ -146,7 +146,7 @@ public class TestUtils {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
latch.countDown(); latch.countDown();
} }
}); });

View File

@ -157,7 +157,7 @@ public class LicensesAcknowledgementTests extends ESSingleNodeTestCase {
} }
@Override @Override
public void onFailure(Throwable throwable) { public void onFailure(Exception throwable) {
latch.countDown(); latch.countDown();
} }
} }

View File

@ -174,7 +174,7 @@ public class LicensesManagerServiceTests extends ESSingleNodeTestCase {
} }
@Override @Override
public void onFailure(Throwable throwable) { public void onFailure(Exception throwable) {
latch.countDown(); latch.countDown();
} }
}); });

View File

@ -84,7 +84,7 @@ public class MonitoringBulkResponse extends ActionResponse {
} }
Error(StreamInput in) throws IOException { Error(StreamInput in) throws IOException {
this(in.<Throwable>readThrowable()); this(in.readException());
} }
@Override @Override

View File

@ -114,8 +114,8 @@ public class TransportMonitoringBulkAction extends HandledTransportAction<Monito
} }
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception e) {
listener.onResponse(new MonitoringBulkResponse(buildTookInMillis(startTimeNanos), new MonitoringBulkResponse.Error(t))); listener.onResponse(new MonitoringBulkResponse(buildTookInMillis(startTimeNanos), new MonitoringBulkResponse.Error(e)));
} }
}); });
} }

View File

@ -204,8 +204,8 @@ public class AgentService extends AbstractLifecycleComponent {
} catch (InterruptedException e) { } catch (InterruptedException e) {
logger.trace("interrupted"); logger.trace("interrupted");
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();
} catch (Throwable t) { } catch (Exception e) {
logger.error("background thread had an uncaught exception", t); logger.error("background thread had an uncaught exception", e);
} }
} }
logger.debug("worker shutdown"); logger.debug("worker shutdown");

View File

@ -59,9 +59,6 @@ import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.StreamSupport; import java.util.stream.StreamSupport;
/**
*
*/
public class HttpExporter extends Exporter { public class HttpExporter extends Exporter {
public static final String TYPE = "http"; public static final String TYPE = "http";
@ -664,9 +661,9 @@ public class HttpExporter extends Exporter {
} }
} catch (InterruptedException e) { } catch (InterruptedException e) {
// ignore, if closed, good.... // ignore, if closed, good....
} catch (Throwable t) { } catch (Exception e) {
logger.debug("error in keep alive thread, shutting down (will be restarted after a successful connection has been " + logger.debug("error in keep alive thread, shutting down (will be restarted after a successful connection has been " +
"made) {}", ExceptionsHelper.detailedMessage(t)); "made) {}", ExceptionsHelper.detailedMessage(e));
return; return;
} }
} }

View File

@ -211,8 +211,8 @@ public class LocalExporter extends Exporter implements ClusterStateListener, Cle
} }
@Override @Override
public void onFailure(Throwable throwable) { public void onFailure(Exception e) {
logger.error("failed to update monitoring index template [{}]", throwable, template); logger.error("failed to update monitoring index template [{}]", e, template);
} }
}); });
} }
@ -296,7 +296,7 @@ public class LocalExporter extends Exporter implements ClusterStateListener, Cle
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
logger.error("failed to delete indices", e); logger.error("failed to delete indices", e);
} }
}); });

View File

@ -179,8 +179,8 @@ public class CleanerService extends AbstractLifecycleComponent {
for (Listener listener : listeners) { for (Listener listener : listeners) {
try { try {
listener.onCleanUpIndices(retention); listener.onCleanUpIndices(retention);
} catch (Throwable t) { } catch (Exception e) {
logger.error("listener failed to clean indices", t); logger.error("listener failed to clean indices", e);
} }
} }
@ -209,8 +209,8 @@ public class CleanerService extends AbstractLifecycleComponent {
} }
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception e) {
logger.error("failed to clean indices", t); logger.error("failed to clean indices", e);
} }
/** /**

View File

@ -81,9 +81,9 @@ public class MonitoringBulkTests extends MonitoringIntegTestCase {
threads[i] = new Thread(new AbstractRunnable() { threads[i] = new Thread(new AbstractRunnable() {
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception e) {
logger.error("unexpected error in exporting thread", t); logger.error("unexpected error in exporting thread", e);
exceptions.add(t); exceptions.add(e);
} }
@Override @Override

View File

@ -152,8 +152,8 @@ public class TransportMonitoringBulkActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(String source, Throwable t) { public void onFailure(String source, Exception e) {
fail("unexpected exception: " + t); fail("unexpected exception: " + e);
} }
}); });

View File

@ -296,9 +296,9 @@ public class ExportersTests extends ESTestCase {
logger.debug("--> exporting thread [{}] exports {} documents", threadNum, threadDocs); logger.debug("--> exporting thread [{}] exports {} documents", threadNum, threadDocs);
threads[i] = new Thread(new AbstractRunnable() { threads[i] = new Thread(new AbstractRunnable() {
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception e) {
logger.error("unexpected error in exporting thread", t); logger.error("unexpected error in exporting thread", e);
exceptions.add(t); exceptions.add(e);
} }
@Override @Override

View File

@ -76,7 +76,7 @@ public class SecurityLifecycleService extends AbstractComponent implements Clust
if (nativeUserStore.canStart(event.state(), master)) { if (nativeUserStore.canStart(event.state(), master)) {
threadPool.generic().execute(new AbstractRunnable() { threadPool.generic().execute(new AbstractRunnable() {
@Override @Override
public void onFailure(Throwable throwable) { public void onFailure(Exception throwable) {
logger.error("failed to start native user store service", throwable); logger.error("failed to start native user store service", throwable);
assert false : "security lifecycle services startup failed"; assert false : "security lifecycle services startup failed";
} }
@ -95,7 +95,7 @@ public class SecurityLifecycleService extends AbstractComponent implements Clust
if (nativeRolesStore.canStart(event.state(), master)) { if (nativeRolesStore.canStart(event.state(), master)) {
threadPool.generic().execute(new AbstractRunnable() { threadPool.generic().execute(new AbstractRunnable() {
@Override @Override
public void onFailure(Throwable throwable) { public void onFailure(Exception throwable) {
logger.error("failed to start native roles store services", throwable); logger.error("failed to start native roles store services", throwable);
assert false : "security lifecycle services startup failed"; assert false : "security lifecycle services startup failed";
} }
@ -117,7 +117,7 @@ public class SecurityLifecycleService extends AbstractComponent implements Clust
threadPool.generic().execute(new AbstractRunnable() { threadPool.generic().execute(new AbstractRunnable() {
@Override @Override
public void onFailure(Throwable throwable) { public void onFailure(Exception throwable) {
logger.error("failed to start index audit trail services", throwable); logger.error("failed to start index audit trail services", throwable);
assert false : "security lifecycle services startup failed"; assert false : "security lifecycle services startup failed";
} }

View File

@ -90,8 +90,8 @@ public class SecurityTemplateService extends AbstractComponent implements Cluste
if (createTemplate && templateCreationPending.compareAndSet(false, true)) { if (createTemplate && templateCreationPending.compareAndSet(false, true)) {
threadPool.generic().execute(new AbstractRunnable() { threadPool.generic().execute(new AbstractRunnable() {
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception e) {
logger.warn("failed to create security index template", t); logger.warn("failed to create security index template", e);
templateCreationPending.set(false); templateCreationPending.set(false);
} }

View File

@ -44,9 +44,6 @@ import java.util.function.Predicate;
import static org.elasticsearch.xpack.security.support.Exceptions.authorizationError; import static org.elasticsearch.xpack.security.support.Exceptions.authorizationError;
/**
*
*/
public class SecurityActionFilter extends AbstractComponent implements ActionFilter { public class SecurityActionFilter extends AbstractComponent implements ActionFilter {
private static final Predicate<String> LICENSE_EXPIRATION_ACTION_MATCHER = HealthAndStatsPrivilege.INSTANCE.predicate(); private static final Predicate<String> LICENSE_EXPIRATION_ACTION_MATCHER = HealthAndStatsPrivilege.INSTANCE.predicate();
@ -109,8 +106,8 @@ public class SecurityActionFilter extends AbstractComponent implements ActionFil
} else { } else {
chain.proceed(task, action, request, listener); chain.proceed(task, action, request, listener);
} }
} catch (Throwable t) { } catch (Exception e) {
listener.onFailure(t); listener.onFailure(e);
} }
} }
@ -231,7 +228,7 @@ public class SecurityActionFilter extends AbstractComponent implements ActionFil
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
if (threadContext != null) { if (threadContext != null) {
threadContext.restore(); threadContext.restore();
} }

View File

@ -44,7 +44,7 @@ public class TransportDeleteRoleAction extends HandledTransportAction<DeleteRole
} }
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception t) {
listener.onFailure(t); listener.onFailure(t);
} }
}); });

View File

@ -77,7 +77,7 @@ public class TransportGetRolesAction extends HandledTransportAction<GetRolesRequ
} }
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception t) {
logger.error("failed to retrieve role [{}]", t, rolename); logger.error("failed to retrieve role [{}]", t, rolename);
listener.onFailure(t); listener.onFailure(t);
} }
@ -95,7 +95,7 @@ public class TransportGetRolesAction extends HandledTransportAction<GetRolesRequ
} }
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception t) {
logger.error("failed to retrieve role [{}]", t, logger.error("failed to retrieve role [{}]", t,
Strings.arrayToDelimitedString(request.names(), ",")); Strings.arrayToDelimitedString(request.names(), ","));
listener.onFailure(t); listener.onFailure(t);

View File

@ -48,7 +48,7 @@ public class TransportPutRoleAction extends HandledTransportAction<PutRoleReques
} }
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception t) {
listener.onFailure(t); listener.onFailure(t);
} }
}); });

View File

@ -12,7 +12,6 @@ import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.xpack.security.authc.esnative.NativeUsersStore; import org.elasticsearch.xpack.security.authc.esnative.NativeUsersStore;
import org.elasticsearch.xpack.security.authc.esnative.ReservedRealm;
import org.elasticsearch.xpack.security.user.AnonymousUser; import org.elasticsearch.xpack.security.user.AnonymousUser;
import org.elasticsearch.xpack.security.user.SystemUser; import org.elasticsearch.xpack.security.user.SystemUser;
import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.threadpool.ThreadPool;
@ -50,7 +49,7 @@ public class TransportChangePasswordAction extends HandledTransportAction<Change
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
listener.onFailure(e); listener.onFailure(e);
} }
}); });

View File

@ -54,7 +54,7 @@ public class TransportDeleteUserAction extends HandledTransportAction<DeleteUser
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
listener.onFailure(e); listener.onFailure(e);
} }
}); });

View File

@ -78,7 +78,7 @@ public class TransportGetUsersAction extends HandledTransportAction<GetUsersRequ
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
logger.error("failed to retrieve user [{}]", e, username); logger.error("failed to retrieve user [{}]", e, username);
listener.onFailure(e); listener.onFailure(e);
} }
@ -94,7 +94,7 @@ public class TransportGetUsersAction extends HandledTransportAction<GetUsersRequ
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
logger.error("failed to retrieve user [{}]", e, logger.error("failed to retrieve user [{}]", e,
Strings.arrayToDelimitedString(request.usernames(), ",")); Strings.arrayToDelimitedString(request.usernames(), ","));
listener.onFailure(e); listener.onFailure(e);

View File

@ -59,7 +59,7 @@ public class TransportPutUserAction extends HandledTransportAction<PutUserReques
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
logger.error("failed to put user [{}]", e, request.username()); logger.error("failed to put user [{}]", e, request.username());
listener.onFailure(e); listener.onFailure(e);
} }

View File

@ -886,7 +886,7 @@ public class IndexAuditTrail extends AbstractComponent implements AuditTrail, Cl
INDEX_TEMPLATE_NAME); INDEX_TEMPLATE_NAME);
threadPool.generic().execute(new AbstractRunnable() { threadPool.generic().execute(new AbstractRunnable() {
@Override @Override
public void onFailure(Throwable throwable) { public void onFailure(Exception throwable) {
logger.error("failed to update security audit index template [{}]", throwable, INDEX_TEMPLATE_NAME); logger.error("failed to update security audit index template [{}]", throwable, INDEX_TEMPLATE_NAME);
} }

View File

@ -159,7 +159,7 @@ public class NativeUsersStore extends AbstractComponent implements ClusterStateL
} }
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception t) {
if (t instanceof IndexNotFoundException) { if (t instanceof IndexNotFoundException) {
logger.trace("failed to retrieve user [{}] since security index does not exist", username); logger.trace("failed to retrieve user [{}] since security index does not exist", username);
// We don't invoke the onFailure listener here, instead // We don't invoke the onFailure listener here, instead
@ -228,7 +228,7 @@ public class NativeUsersStore extends AbstractComponent implements ClusterStateL
} }
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception t) {
// attempt to clear scroll response // attempt to clear scroll response
if (lastResponse != null && lastResponse.getScrollId() != null) { if (lastResponse != null && lastResponse.getScrollId() != null) {
clearScrollResponse(lastResponse.getScrollId()); clearScrollResponse(lastResponse.getScrollId());
@ -260,7 +260,7 @@ public class NativeUsersStore extends AbstractComponent implements ClusterStateL
} }
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception t) {
if (t instanceof IndexNotFoundException) { if (t instanceof IndexNotFoundException) {
logger.trace("failed to retrieve user [{}] since security index does not exist", t, username); logger.trace("failed to retrieve user [{}] since security index does not exist", t, username);
} else { } else {
@ -287,7 +287,7 @@ public class NativeUsersStore extends AbstractComponent implements ClusterStateL
} }
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception t) {
if (t instanceof IndexNotFoundException) { if (t instanceof IndexNotFoundException) {
logger.trace("could not retrieve user [{}] because security index does not exist", t, user); logger.trace("could not retrieve user [{}] because security index does not exist", t, user);
} else { } else {
@ -334,7 +334,7 @@ public class NativeUsersStore extends AbstractComponent implements ClusterStateL
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
Throwable cause = e; Throwable cause = e;
if (e instanceof ElasticsearchException) { if (e instanceof ElasticsearchException) {
cause = ExceptionsHelper.unwrapCause(e); cause = ExceptionsHelper.unwrapCause(e);
@ -368,7 +368,7 @@ public class NativeUsersStore extends AbstractComponent implements ClusterStateL
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
listener.onFailure(e); listener.onFailure(e);
} }
}); });
@ -410,7 +410,7 @@ public class NativeUsersStore extends AbstractComponent implements ClusterStateL
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
Throwable cause = e; Throwable cause = e;
if (e instanceof ElasticsearchException) { if (e instanceof ElasticsearchException) {
cause = ExceptionsHelper.unwrapCause(e); cause = ExceptionsHelper.unwrapCause(e);
@ -455,7 +455,7 @@ public class NativeUsersStore extends AbstractComponent implements ClusterStateL
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
listener.onFailure(e); listener.onFailure(e);
} }
}); });
@ -479,7 +479,7 @@ public class NativeUsersStore extends AbstractComponent implements ClusterStateL
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
listener.onFailure(e); listener.onFailure(e);
} }
}); });
@ -550,9 +550,9 @@ public class NativeUsersStore extends AbstractComponent implements ClusterStateL
if (state.compareAndSet(State.STARTED, State.STOPPING)) { if (state.compareAndSet(State.STARTED, State.STOPPING)) {
try { try {
userPoller.stop(); userPoller.stop();
} catch (Throwable t) { } catch (Exception e) {
state.set(State.FAILED); state.set(State.FAILED);
throw t; throw e;
} finally { } finally {
state.set(State.STOPPED); state.set(State.STOPPED);
} }
@ -594,10 +594,10 @@ public class NativeUsersStore extends AbstractComponent implements ClusterStateL
return securityIndexExists; return securityIndexExists;
} }
char[] reservedUserPassword(String username) throws Throwable { char[] reservedUserPassword(String username) throws Exception {
assert started(); assert started();
final AtomicReference<char[]> passwordHash = new AtomicReference<>(); final AtomicReference<char[]> passwordHash = new AtomicReference<>();
final AtomicReference<Throwable> failure = new AtomicReference<>(); final AtomicReference<Exception> failure = new AtomicReference<>();
final CountDownLatch latch = new CountDownLatch(1); final CountDownLatch latch = new CountDownLatch(1);
client.prepareGet(SecurityTemplateService.SECURITY_INDEX_NAME, RESERVED_USER_DOC_TYPE, username) client.prepareGet(SecurityTemplateService.SECURITY_INDEX_NAME, RESERVED_USER_DOC_TYPE, username)
.execute(new LatchedActionListener<>(new ActionListener<GetResponse>() { .execute(new LatchedActionListener<>(new ActionListener<GetResponse>() {
@ -615,7 +615,7 @@ public class NativeUsersStore extends AbstractComponent implements ClusterStateL
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
if (e instanceof IndexNotFoundException) { if (e instanceof IndexNotFoundException) {
logger.trace("could not retrieve built in user [{}] password since security index does not exist", e, username); logger.trace("could not retrieve built in user [{}] password since security index does not exist", e, username);
} else { } else {
@ -634,7 +634,7 @@ public class NativeUsersStore extends AbstractComponent implements ClusterStateL
failure.set(e); failure.set(e);
} }
Throwable failureCause = failure.get(); Exception failureCause = failure.get();
if (failureCause != null) { if (failureCause != null) {
// if there is any sort of failure we need to throw an exception to prevent the fallback to the default password... // if there is any sort of failure we need to throw an exception to prevent the fallback to the default password...
throw failureCause; throw failureCause;
@ -651,7 +651,7 @@ public class NativeUsersStore extends AbstractComponent implements ClusterStateL
} }
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception t) {
// Not really much to do here except for warn about it... // Not really much to do here except for warn about it...
logger.warn("failed to clear scroll [{}]", t, scrollId); logger.warn("failed to clear scroll [{}]", t, scrollId);
} }
@ -669,7 +669,7 @@ public class NativeUsersStore extends AbstractComponent implements ClusterStateL
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
logger.error("unable to clear realm cache for user [{}]", e, username); logger.error("unable to clear realm cache for user [{}]", e, username);
ElasticsearchException exception = new ElasticsearchException("clearing the cache for [" + username ElasticsearchException exception = new ElasticsearchException("clearing the cache for [" + username
+ "] failed. please clear the realm cache manually", e); + "] failed. please clear the realm cache manually", e);
@ -838,21 +838,22 @@ public class NativeUsersStore extends AbstractComponent implements ClusterStateL
} }
// call listeners // call listeners
Throwable th = null; RuntimeException ex = null;
for (ChangeListener listener : listeners) { for (ChangeListener listener : listeners) {
try { try {
listener.onUsersChanged(changedUsers); listener.onUsersChanged(changedUsers);
} catch (Throwable t) { } catch (Exception e) {
th = ExceptionsHelper.useOrSuppress(th, t); if (ex == null) ex = new RuntimeException("exception while notifying listeners");
ex.addSuppressed(e);
} }
} }
ExceptionsHelper.reThrowIfNotNull(th); if (ex != null) throw ex;
} }
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception e) {
logger.error("error occurred while checking the native users for changes", t); logger.error("error occurred while checking the native users for changes", e);
} }
private boolean isStopped() { private boolean isStopped() {

View File

@ -131,7 +131,7 @@ public class ReservedRealm extends CachingUsernamePasswordRealm {
return DEFAULT_PASSWORD_HASH; return DEFAULT_PASSWORD_HASH;
} }
return passwordHash; return passwordHash;
} catch (Throwable e) { } catch (Exception e) {
logger.error("failed to retrieve password hash for reserved user [{}]", e, username); logger.error("failed to retrieve password hash for reserved user [{}]", e, username);
return null; return null;
} }

View File

@ -37,9 +37,6 @@ import static java.util.Collections.emptyMap;
import static java.util.Collections.unmodifiableMap; import static java.util.Collections.unmodifiableMap;
import static org.elasticsearch.xpack.security.support.SecurityFiles.openAtomicMoveWriter; import static org.elasticsearch.xpack.security.support.SecurityFiles.openAtomicMoveWriter;
/**
*
*/
public class FileUserPasswdStore { public class FileUserPasswdStore {
private final ESLogger logger; private final ESLogger logger;
@ -111,8 +108,8 @@ public class FileUserPasswdStore {
static Map<String, char[]> parseFileLenient(Path path, ESLogger logger) { static Map<String, char[]> parseFileLenient(Path path, ESLogger logger) {
try { try {
return parseFile(path, logger); return parseFile(path, logger);
} catch (Throwable t) { } catch (Exception e) {
logger.error("failed to parse users file [{}]. skipping/removing all users...", t, path.toAbsolutePath()); logger.error("failed to parse users file [{}]. skipping/removing all users...", e, path.toAbsolutePath());
return emptyMap(); return emptyMap();
} }
} }

View File

@ -37,9 +37,6 @@ import static java.util.Collections.emptyMap;
import static java.util.Collections.unmodifiableMap; import static java.util.Collections.unmodifiableMap;
import static org.elasticsearch.xpack.security.support.SecurityFiles.openAtomicMoveWriter; import static org.elasticsearch.xpack.security.support.SecurityFiles.openAtomicMoveWriter;
/**
*
*/
public class FileUserRolesStore { public class FileUserRolesStore {
private static final Pattern USERS_DELIM = Pattern.compile("\\s*,\\s*"); private static final Pattern USERS_DELIM = Pattern.compile("\\s*,\\s*");
@ -103,8 +100,8 @@ public class FileUserRolesStore {
static Map<String, String[]> parseFileLenient(Path path, ESLogger logger) { static Map<String, String[]> parseFileLenient(Path path, ESLogger logger) {
try { try {
return parseFile(path, logger); return parseFile(path, logger);
} catch (Throwable t) { } catch (Exception e) {
logger.error("failed to parse users_roles file [{}]. skipping/removing all entries...", t, path.toAbsolutePath()); logger.error("failed to parse users_roles file [{}]. skipping/removing all entries...", e, path.toAbsolutePath());
return emptyMap(); return emptyMap();
} }
} }

View File

@ -95,8 +95,8 @@ public class DnRoleMapper {
public static Map<DN, Set<String>> parseFileLenient(Path path, ESLogger logger, String realmType, String realmName) { public static Map<DN, Set<String>> parseFileLenient(Path path, ESLogger logger, String realmType, String realmName) {
try { try {
return parseFile(path, logger, realmType, realmName); return parseFile(path, logger, realmType, realmName);
} catch (Throwable t) { } catch (Exception e) {
logger.error("failed to parse role mappings file [{}]. skipping/removing all mappings...", t, path.toAbsolutePath()); logger.error("failed to parse role mappings file [{}]. skipping/removing all mappings...", e, path.toAbsolutePath());
return emptyMap(); return emptyMap();
} }
} }

View File

@ -46,9 +46,6 @@ import static java.util.Collections.emptySet;
import static java.util.Collections.unmodifiableMap; import static java.util.Collections.unmodifiableMap;
import static org.elasticsearch.xpack.security.Security.setting; import static org.elasticsearch.xpack.security.Security.setting;
/**
*
*/
public class FileRolesStore extends AbstractLifecycleComponent implements RolesStore { public class FileRolesStore extends AbstractLifecycleComponent implements RolesStore {
public static final Setting<String> ROLES_FILE_SETTING = public static final Setting<String> ROLES_FILE_SETTING =
@ -288,8 +285,8 @@ public class FileRolesStore extends AbstractLifecycleComponent implements RolesS
try { try {
permissions = parseFile(file, logger, settings); permissions = parseFile(file, logger, settings);
logger.info("updated roles (roles file [{}] changed)", file.toAbsolutePath()); logger.info("updated roles (roles file [{}] changed)", file.toAbsolutePath());
} catch (Throwable t) { } catch (Exception e) {
logger.error("could not reload roles file [{}]. Current roles remain unmodified", t, file.toAbsolutePath()); logger.error("could not reload roles file [{}]. Current roles remain unmodified", e, file.toAbsolutePath());
return; return;
} }
listener.onRefresh(); listener.onRefresh();

View File

@ -231,7 +231,7 @@ public class NativeRolesStore extends AbstractComponent implements RolesStore, C
} }
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception t) {
// attempt to clear the scroll request // attempt to clear the scroll request
if (lastResponse != null && lastResponse.getScrollId() != null) { if (lastResponse != null && lastResponse.getScrollId() != null) {
clearScollRequest(lastResponse.getScrollId()); clearScollRequest(lastResponse.getScrollId());
@ -277,7 +277,7 @@ public class NativeRolesStore extends AbstractComponent implements RolesStore, C
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
logger.error("failed to delete role from the index", e); logger.error("failed to delete role from the index", e);
listener.onFailure(e); listener.onFailure(e);
} }
@ -311,7 +311,7 @@ public class NativeRolesStore extends AbstractComponent implements RolesStore, C
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
logger.error("failed to put role [{}]", e, request.name()); logger.error("failed to put role [{}]", e, request.name());
listener.onFailure(e); listener.onFailure(e);
} }
@ -345,7 +345,7 @@ public class NativeRolesStore extends AbstractComponent implements RolesStore, C
} }
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception t) {
if (t instanceof IndexNotFoundException) { if (t instanceof IndexNotFoundException) {
logger.trace("failed to retrieve role [{}] since security index does not exist", t, roleId); logger.trace("failed to retrieve role [{}] since security index does not exist", t, roleId);
} else { } else {
@ -403,7 +403,7 @@ public class NativeRolesStore extends AbstractComponent implements RolesStore, C
} }
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception t) {
// Not really much to do here except for warn about it... // Not really much to do here except for warn about it...
logger.warn("failed to clear scroll [{}] after retrieving roles", t, scrollId); logger.warn("failed to clear scroll [{}] after retrieving roles", t, scrollId);
} }
@ -441,7 +441,7 @@ public class NativeRolesStore extends AbstractComponent implements RolesStore, C
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
logger.error("unable to clear cache for role [{}]", e, role); logger.error("unable to clear cache for role [{}]", e, role);
ElasticsearchException exception = new ElasticsearchException("clearing the cache for [" + role ElasticsearchException exception = new ElasticsearchException("clearing the cache for [" + role
+ "] failed. please clear the role cache manually", e); + "] failed. please clear the role cache manually", e);
@ -568,8 +568,8 @@ public class NativeRolesStore extends AbstractComponent implements RolesStore, C
} }
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception e) {
logger.error("error occurred while checking the native roles for changes", t); logger.error("error occurred while checking the native roles for changes", e);
} }
private boolean isStopped() { private boolean isStopped() {

View File

@ -12,13 +12,12 @@ import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.settings.Setting; import org.elasticsearch.common.settings.Setting;
import org.elasticsearch.common.settings.Setting.Property; import org.elasticsearch.common.settings.Setting.Property;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.settings.SettingsModule;
import org.elasticsearch.env.Environment; import org.elasticsearch.env.Environment;
import org.elasticsearch.xpack.security.authc.support.CharArrays;
import org.elasticsearch.watcher.FileChangesListener; import org.elasticsearch.watcher.FileChangesListener;
import org.elasticsearch.watcher.FileWatcher; import org.elasticsearch.watcher.FileWatcher;
import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.watcher.ResourceWatcherService;
import org.elasticsearch.xpack.XPackPlugin; import org.elasticsearch.xpack.XPackPlugin;
import org.elasticsearch.xpack.security.authc.support.CharArrays;
import javax.crypto.BadPaddingException; import javax.crypto.BadPaddingException;
import javax.crypto.Cipher; import javax.crypto.Cipher;
@ -28,6 +27,7 @@ import javax.crypto.Mac;
import javax.crypto.SecretKey; import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec; import javax.crypto.spec.SecretKeySpec;
import java.io.IOException; import java.io.IOException;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
@ -45,12 +45,9 @@ import java.util.Objects;
import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArrayList;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import static org.elasticsearch.xpack.security.authc.support.SecuredString.constantTimeEquals;
import static org.elasticsearch.xpack.security.Security.setting; import static org.elasticsearch.xpack.security.Security.setting;
import static org.elasticsearch.xpack.security.authc.support.SecuredString.constantTimeEquals;
/**
*
*/
public class InternalCryptoService extends AbstractLifecycleComponent implements CryptoService { public class InternalCryptoService extends AbstractLifecycleComponent implements CryptoService {
public static final String KEY_ALGO = "HmacSHA512"; public static final String KEY_ALGO = "HmacSHA512";
@ -232,8 +229,8 @@ public class InternalCryptoService extends AbstractLifecycleComponent implements
base64RandomKey = pieces[2]; base64RandomKey = pieces[2];
receivedSignature = pieces[3].substring(0, length); receivedSignature = pieces[3].substring(0, length);
text = pieces[3].substring(length); text = pieces[3].substring(length);
} catch (Throwable t) { } catch (Exception e) {
logger.error("error occurred while parsing signed text", t); logger.error("error occurred while parsing signed text", e);
throw new IllegalArgumentException("tampered signed text"); throw new IllegalArgumentException("tampered signed text");
} }
@ -270,8 +267,8 @@ public class InternalCryptoService extends AbstractLifecycleComponent implements
if (constantTimeEquals(sig, receivedSignature)) { if (constantTimeEquals(sig, receivedSignature)) {
return text; return text;
} }
} catch (Throwable t) { } catch (Exception e) {
logger.error("error occurred while verifying signed text", t); logger.error("error occurred while verifying signed text", e);
throw new IllegalStateException("error while verifying the signed text"); throw new IllegalStateException("error while verifying the signed text");
} }
@ -543,29 +540,20 @@ public class InternalCryptoService extends AbstractLifecycleComponent implements
} }
private void callListeners(SecretKey oldSystemKey, SecretKey oldEncryptionKey) { private void callListeners(SecretKey oldSystemKey, SecretKey oldEncryptionKey) {
Throwable th = null; RuntimeException ex = null;
for (Listener listener : listeners) { for (Listener listener : listeners) {
try { try {
listener.onKeyChange(oldSystemKey, oldEncryptionKey); listener.onKeyChange(oldSystemKey, oldEncryptionKey);
} catch (Throwable t) { } catch (Exception e) {
if (th == null) { if (ex == null) ex = new RuntimeException("exception calling key change listeners");
th = t; ex.addSuppressed(e);
} else {
th.addSuppressed(t);
}
} }
} }
// all listeners were notified now rethrow // all listeners were notified now rethrow
if (th != null) { if (ex != null) {
logger.error("called all key change listeners but one or more exceptions was thrown", th); logger.error("called all key change listeners but one or more exceptions was thrown", ex);
if (th instanceof RuntimeException) { throw ex;
throw (RuntimeException) th;
} else if (th instanceof Error) {
throw (Error) th;
} else {
throw new RuntimeException(th);
}
} }
} }
} }

View File

@ -123,8 +123,8 @@ public abstract class AbstractSSLService extends AbstractComponent {
sslEngine.setEnabledCipherSuites(supportedCiphers(sslEngine.getSupportedCipherSuites(), ciphers, false)); sslEngine.setEnabledCipherSuites(supportedCiphers(sslEngine.getSupportedCipherSuites(), ciphers, false));
} catch (ElasticsearchException e) { } catch (ElasticsearchException e) {
throw e; throw e;
} catch (Throwable t) { } catch (Exception e) {
throw new IllegalArgumentException("failed loading cipher suites [" + Arrays.asList(ciphers) + "]", t); throw new IllegalArgumentException("failed loading cipher suites [" + Arrays.asList(ciphers) + "]", e);
} }
try { try {

View File

@ -49,8 +49,8 @@ public class SelfReschedulingRunnable extends AbstractRunnable {
} }
@Override @Override
public void onFailure(Throwable t) { public void onFailure(Exception e) {
logger.warn("failed to run scheduled task", t); logger.warn("failed to run scheduled task", e);
} }
@Override @Override

View File

@ -34,8 +34,8 @@ public class SecurityClientTransportService extends TransportService {
try { try {
clientFilter.outbound(action, request); clientFilter.outbound(action, request);
super.sendRequest(node, action, request, options, handler); super.sendRequest(node, action, request, options, handler);
} catch (Throwable t) { } catch (Exception e) {
handler.handleException(new TransportException("failed sending request", t)); handler.handleException(new TransportException("failed sending request", e));
} }
} }

View File

@ -38,9 +38,6 @@ import static org.elasticsearch.xpack.security.transport.netty.SecurityNettyTran
import static org.elasticsearch.xpack.security.transport.netty.SecurityNettyTransport.PROFILE_CLIENT_AUTH_SETTING; import static org.elasticsearch.xpack.security.transport.netty.SecurityNettyTransport.PROFILE_CLIENT_AUTH_SETTING;
import static org.elasticsearch.xpack.security.transport.netty.SecurityNettyTransport.SSL_SETTING; import static org.elasticsearch.xpack.security.transport.netty.SecurityNettyTransport.SSL_SETTING;
/**
*
*/
public class SecurityServerTransportService extends TransportService { public class SecurityServerTransportService extends TransportService {
public static final String SETTING_NAME = "xpack.security.type"; public static final String SETTING_NAME = "xpack.security.type";
@ -81,16 +78,16 @@ public class SecurityServerTransportService extends TransportService {
try { try {
clientFilter.outbound(action, request); clientFilter.outbound(action, request);
super.sendRequest(node, action, request, options, new ContextRestoreResponseHandler<>(original, handler)); super.sendRequest(node, action, request, options, new ContextRestoreResponseHandler<>(original, handler));
} catch (Throwable t) { } catch (Exception e) {
handler.handleException(new TransportException("failed sending request", t)); handler.handleException(new TransportException("failed sending request", e));
} }
} }
} else { } else {
try { try {
clientFilter.outbound(action, request); clientFilter.outbound(action, request);
super.sendRequest(node, action, request, options, handler); super.sendRequest(node, action, request, options, handler);
} catch (Throwable t) { } catch (Exception e) {
handler.handleException(new TransportException("failed sending request", t)); handler.handleException(new TransportException("failed sending request", e));
} }
} }
} }
@ -194,8 +191,8 @@ public class SecurityServerTransportService extends TransportService {
RequestContext context = new RequestContext(request, threadContext); RequestContext context = new RequestContext(request, threadContext);
RequestContext.setCurrent(context); RequestContext.setCurrent(context);
handler.messageReceived(request, channel, task); handler.messageReceived(request, channel, task);
} catch (Throwable t) { } catch (Exception e) {
channel.sendResponse(t); channel.sendResponse(e);
} finally { } finally {
RequestContext.removeCurrent(); RequestContext.removeCurrent();
} }

View File

@ -26,14 +26,12 @@ import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.ChannelPipelineFactory; import org.jboss.netty.channel.ChannelPipelineFactory;
import org.jboss.netty.channel.ChannelStateEvent; import org.jboss.netty.channel.ChannelStateEvent;
import org.jboss.netty.channel.ExceptionEvent;
import org.jboss.netty.channel.SimpleChannelHandler; import org.jboss.netty.channel.SimpleChannelHandler;
import org.jboss.netty.handler.ssl.SslHandler; import org.jboss.netty.handler.ssl.SslHandler;
import javax.net.ssl.SSLEngine; import javax.net.ssl.SSLEngine;
import javax.net.ssl.SSLParameters; import javax.net.ssl.SSLParameters;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.util.Collections;
import java.util.List; import java.util.List;
import static org.elasticsearch.xpack.security.Security.featureEnabledSetting; import static org.elasticsearch.xpack.security.Security.featureEnabledSetting;
@ -113,7 +111,7 @@ public class SecurityNettyTransport extends NettyTransport {
} }
@Override @Override
protected void onException(Channel channel, Throwable e) { protected void onException(Channel channel, Exception e) {
if (isNotSslRecordException(e)) { if (isNotSslRecordException(e)) {
if (logger.isTraceEnabled()) { if (logger.isTraceEnabled()) {
logger.trace("received plaintext traffic on a encrypted channel, closing connection {}", e, channel); logger.trace("received plaintext traffic on a encrypted channel, closing connection {}", e, channel);

View File

@ -146,7 +146,7 @@ public class ClearRealmsCacheTests extends SecurityIntegTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
error.set(e); error.set(e);
latch.countDown(); latch.countDown();
} }

View File

@ -55,7 +55,7 @@ public class TransportDeleteRoleActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -96,7 +96,7 @@ public class TransportDeleteRoleActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -108,7 +108,7 @@ public class TransportDeleteRoleActionTests extends ESTestCase {
} }
public void testException() { public void testException() {
final Throwable t = randomFrom(new ElasticsearchSecurityException(""), new IllegalStateException()); final Exception e = randomFrom(new ElasticsearchSecurityException(""), new IllegalStateException());
final String roleName = randomFrom("admin", "dept_a", "restricted"); final String roleName = randomFrom("admin", "dept_a", "restricted");
NativeRolesStore rolesStore = mock(NativeRolesStore.class); NativeRolesStore rolesStore = mock(NativeRolesStore.class);
TransportDeleteRoleAction action = new TransportDeleteRoleAction(Settings.EMPTY, mock(ThreadPool.class), mock(ActionFilters.class), TransportDeleteRoleAction action = new TransportDeleteRoleAction(Settings.EMPTY, mock(ThreadPool.class), mock(ActionFilters.class),
@ -124,7 +124,7 @@ public class TransportDeleteRoleActionTests extends ESTestCase {
Object[] args = invocation.getArguments(); Object[] args = invocation.getArguments();
assert args.length == 2; assert args.length == 2;
ActionListener<Boolean> listener = (ActionListener<Boolean>) args[1]; ActionListener<Boolean> listener = (ActionListener<Boolean>) args[1];
listener.onFailure(t); listener.onFailure(e);
return null; return null;
} }
}).when(rolesStore).deleteRole(eq(request), any(ActionListener.class)); }).when(rolesStore).deleteRole(eq(request), any(ActionListener.class));
@ -138,14 +138,14 @@ public class TransportDeleteRoleActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
assertThat(responseRef.get(), is(nullValue())); assertThat(responseRef.get(), is(nullValue()));
assertThat(throwableRef.get(), is(notNullValue())); assertThat(throwableRef.get(), is(notNullValue()));
assertThat(throwableRef.get(), is(sameInstance(t))); assertThat(throwableRef.get(), is(sameInstance(e)));
verify(rolesStore, times(1)).deleteRole(eq(request), any(ActionListener.class)); verify(rolesStore, times(1)).deleteRole(eq(request), any(ActionListener.class));
} }
} }

View File

@ -89,7 +89,7 @@ public class TransportGetRolesActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -158,7 +158,7 @@ public class TransportGetRolesActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -251,7 +251,7 @@ public class TransportGetRolesActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -273,7 +273,7 @@ public class TransportGetRolesActionTests extends ESTestCase {
} }
public void testException() { public void testException() {
final Throwable t = randomFrom(new ElasticsearchSecurityException(""), new IllegalStateException()); final Exception e = randomFrom(new ElasticsearchSecurityException(""), new IllegalStateException());
final List<RoleDescriptor> storeRoleDescriptors = randomRoleDescriptors(); final List<RoleDescriptor> storeRoleDescriptors = randomRoleDescriptors();
NativeRolesStore rolesStore = mock(NativeRolesStore.class); NativeRolesStore rolesStore = mock(NativeRolesStore.class);
SecurityContext context = mock(SecurityContext.class); SecurityContext context = mock(SecurityContext.class);
@ -290,7 +290,7 @@ public class TransportGetRolesActionTests extends ESTestCase {
Object[] args = invocation.getArguments(); Object[] args = invocation.getArguments();
assert args.length == 2; assert args.length == 2;
ActionListener<RoleDescriptor> listener = (ActionListener<RoleDescriptor>) args[1]; ActionListener<RoleDescriptor> listener = (ActionListener<RoleDescriptor>) args[1];
listener.onFailure(t); listener.onFailure(e);
return null; return null;
} }
}).when(rolesStore).getRoleDescriptor(eq(request.names()[0]), any(ActionListener.class)); }).when(rolesStore).getRoleDescriptor(eq(request.names()[0]), any(ActionListener.class));
@ -301,7 +301,7 @@ public class TransportGetRolesActionTests extends ESTestCase {
Object[] args = invocation.getArguments(); Object[] args = invocation.getArguments();
assert args.length == 2; assert args.length == 2;
ActionListener<List<RoleDescriptor>> listener = (ActionListener<List<RoleDescriptor>>) args[1]; ActionListener<List<RoleDescriptor>> listener = (ActionListener<List<RoleDescriptor>>) args[1];
listener.onFailure(t); listener.onFailure(e);
return null; return null;
} }
}).when(rolesStore).getRoleDescriptors(aryEq(request.names()), any(ActionListener.class)); }).when(rolesStore).getRoleDescriptors(aryEq(request.names()), any(ActionListener.class));
@ -316,13 +316,13 @@ public class TransportGetRolesActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
assertThat(throwableRef.get(), is(notNullValue())); assertThat(throwableRef.get(), is(notNullValue()));
assertThat(throwableRef.get(), is(t)); assertThat(throwableRef.get(), is(e));
assertThat(responseRef.get(), is(nullValue())); assertThat(responseRef.get(), is(nullValue()));
} }

View File

@ -56,7 +56,7 @@ public class TransportPutRoleActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -97,7 +97,7 @@ public class TransportPutRoleActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -109,7 +109,7 @@ public class TransportPutRoleActionTests extends ESTestCase {
} }
public void testException() { public void testException() {
final Throwable t = randomFrom(new ElasticsearchSecurityException(""), new IllegalStateException()); final Exception e = randomFrom(new ElasticsearchSecurityException(""), new IllegalStateException());
final String roleName = randomFrom("admin", "dept_a", "restricted"); final String roleName = randomFrom("admin", "dept_a", "restricted");
NativeRolesStore rolesStore = mock(NativeRolesStore.class); NativeRolesStore rolesStore = mock(NativeRolesStore.class);
TransportPutRoleAction action = new TransportPutRoleAction(Settings.EMPTY, mock(ThreadPool.class), mock(ActionFilters.class), TransportPutRoleAction action = new TransportPutRoleAction(Settings.EMPTY, mock(ThreadPool.class), mock(ActionFilters.class),
@ -124,7 +124,7 @@ public class TransportPutRoleActionTests extends ESTestCase {
Object[] args = invocation.getArguments(); Object[] args = invocation.getArguments();
assert args.length == 3; assert args.length == 3;
ActionListener<Boolean> listener = (ActionListener<Boolean>) args[2]; ActionListener<Boolean> listener = (ActionListener<Boolean>) args[2];
listener.onFailure(t); listener.onFailure(e);
return null; return null;
} }
}).when(rolesStore).putRole(eq(request), any(RoleDescriptor.class), any(ActionListener.class)); }).when(rolesStore).putRole(eq(request), any(RoleDescriptor.class), any(ActionListener.class));
@ -138,14 +138,14 @@ public class TransportPutRoleActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
assertThat(responseRef.get(), is(nullValue())); assertThat(responseRef.get(), is(nullValue()));
assertThat(throwableRef.get(), is(notNullValue())); assertThat(throwableRef.get(), is(notNullValue()));
assertThat(throwableRef.get(), is(sameInstance(t))); assertThat(throwableRef.get(), is(sameInstance(e)));
verify(rolesStore, times(1)).putRole(eq(request), any(RoleDescriptor.class), any(ActionListener.class)); verify(rolesStore, times(1)).putRole(eq(request), any(RoleDescriptor.class), any(ActionListener.class));
} }
} }

View File

@ -47,7 +47,7 @@ public class TransportAuthenticateActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -72,7 +72,7 @@ public class TransportAuthenticateActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -99,7 +99,7 @@ public class TransportAuthenticateActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });

View File

@ -68,7 +68,7 @@ public class TransportChangePasswordActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -97,7 +97,7 @@ public class TransportChangePasswordActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -135,7 +135,7 @@ public class TransportChangePasswordActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -152,13 +152,13 @@ public class TransportChangePasswordActionTests extends ESTestCase {
ChangePasswordRequest request = new ChangePasswordRequest(); ChangePasswordRequest request = new ChangePasswordRequest();
request.username(user.principal()); request.username(user.principal());
request.passwordHash(Hasher.BCRYPT.hash(new SecuredString("changeme".toCharArray()))); request.passwordHash(Hasher.BCRYPT.hash(new SecuredString("changeme".toCharArray())));
final Throwable t = randomFrom(new ElasticsearchSecurityException(""), new IllegalStateException(), new RuntimeException()); final Exception e = randomFrom(new ElasticsearchSecurityException(""), new IllegalStateException(), new RuntimeException());
doAnswer(new Answer() { doAnswer(new Answer() {
public Void answer(InvocationOnMock invocation) { public Void answer(InvocationOnMock invocation) {
Object[] args = invocation.getArguments(); Object[] args = invocation.getArguments();
assert args.length == 2; assert args.length == 2;
ActionListener<Void> listener = (ActionListener<Void>) args[1]; ActionListener<Void> listener = (ActionListener<Void>) args[1];
listener.onFailure(t); listener.onFailure(e);
return null; return null;
} }
}).when(usersStore).changePassword(eq(request), any(ActionListener.class)); }).when(usersStore).changePassword(eq(request), any(ActionListener.class));
@ -174,14 +174,14 @@ public class TransportChangePasswordActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
assertThat(responseRef.get(), is(nullValue())); assertThat(responseRef.get(), is(nullValue()));
assertThat(throwableRef.get(), is(notNullValue())); assertThat(throwableRef.get(), is(notNullValue()));
assertThat(throwableRef.get(), sameInstance(t)); assertThat(throwableRef.get(), sameInstance(e));
verify(usersStore, times(1)).changePassword(eq(request), any(ActionListener.class)); verify(usersStore, times(1)).changePassword(eq(request), any(ActionListener.class));
} }
} }

View File

@ -63,7 +63,7 @@ public class TransportDeleteUserActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -90,7 +90,7 @@ public class TransportDeleteUserActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -118,7 +118,7 @@ public class TransportDeleteUserActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -156,7 +156,7 @@ public class TransportDeleteUserActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -168,7 +168,7 @@ public class TransportDeleteUserActionTests extends ESTestCase {
} }
public void testException() { public void testException() {
final Throwable t = randomFrom(new ElasticsearchSecurityException(""), new IllegalStateException(), new RuntimeException()); final Exception e = randomFrom(new ElasticsearchSecurityException(""), new IllegalStateException(), new RuntimeException());
final User user = new User("joe"); final User user = new User("joe");
NativeUsersStore usersStore = mock(NativeUsersStore.class); NativeUsersStore usersStore = mock(NativeUsersStore.class);
TransportDeleteUserAction action = new TransportDeleteUserAction(Settings.EMPTY, mock(ThreadPool.class), TransportDeleteUserAction action = new TransportDeleteUserAction(Settings.EMPTY, mock(ThreadPool.class),
@ -180,7 +180,7 @@ public class TransportDeleteUserActionTests extends ESTestCase {
Object[] args = invocation.getArguments(); Object[] args = invocation.getArguments();
assert args.length == 2; assert args.length == 2;
ActionListener<Boolean> listener = (ActionListener<Boolean>) args[1]; ActionListener<Boolean> listener = (ActionListener<Boolean>) args[1];
listener.onFailure(t); listener.onFailure(e);
return null; return null;
} }
}).when(usersStore).deleteUser(eq(request), any(ActionListener.class)); }).when(usersStore).deleteUser(eq(request), any(ActionListener.class));
@ -194,14 +194,14 @@ public class TransportDeleteUserActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
assertThat(responseRef.get(), is(nullValue())); assertThat(responseRef.get(), is(nullValue()));
assertThat(throwableRef.get(), is(notNullValue())); assertThat(throwableRef.get(), is(notNullValue()));
assertThat(throwableRef.get(), sameInstance(t)); assertThat(throwableRef.get(), sameInstance(e));
verify(usersStore, times(1)).deleteUser(eq(request), any(ActionListener.class)); verify(usersStore, times(1)).deleteUser(eq(request), any(ActionListener.class));
} }
} }

View File

@ -84,7 +84,7 @@ public class TransportGetUsersActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -116,7 +116,7 @@ public class TransportGetUsersActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -147,7 +147,7 @@ public class TransportGetUsersActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -185,7 +185,7 @@ public class TransportGetUsersActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -242,7 +242,7 @@ public class TransportGetUsersActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -261,7 +261,7 @@ public class TransportGetUsersActionTests extends ESTestCase {
} }
public void testException() { public void testException() {
final Throwable t = randomFrom(new ElasticsearchSecurityException(""), new IllegalStateException(), new ValidationException()); final Exception e = randomFrom(new ElasticsearchSecurityException(""), new IllegalStateException(), new ValidationException());
final List<User> storeUsers = final List<User> storeUsers =
randomFrom(Collections.singletonList(new User("joe")), Arrays.asList(new User("jane"), new User("fred")), randomUsers()); randomFrom(Collections.singletonList(new User("joe")), Arrays.asList(new User("jane"), new User("fred")), randomUsers());
final String[] storeUsernames = storeUsers.stream().map(User::principal).collect(Collectors.toList()).toArray(Strings.EMPTY_ARRAY); final String[] storeUsernames = storeUsers.stream().map(User::principal).collect(Collectors.toList()).toArray(Strings.EMPTY_ARRAY);
@ -277,7 +277,7 @@ public class TransportGetUsersActionTests extends ESTestCase {
Object[] args = invocation.getArguments(); Object[] args = invocation.getArguments();
assert args.length == 2; assert args.length == 2;
ActionListener<List<User>> listener = (ActionListener<List<User>>) args[1]; ActionListener<List<User>> listener = (ActionListener<List<User>>) args[1];
listener.onFailure(t); listener.onFailure(e);
return null; return null;
} }
}).when(usersStore).getUsers(aryEq(storeUsernames), any(ActionListener.class)); }).when(usersStore).getUsers(aryEq(storeUsernames), any(ActionListener.class));
@ -288,7 +288,7 @@ public class TransportGetUsersActionTests extends ESTestCase {
Object[] args = invocation.getArguments(); Object[] args = invocation.getArguments();
assert args.length == 2; assert args.length == 2;
ActionListener<User> listener = (ActionListener<User>) args[1]; ActionListener<User> listener = (ActionListener<User>) args[1];
listener.onFailure(t); listener.onFailure(e);
return null; return null;
} }
}).when(usersStore).getUser(eq(storeUsernames[0]), any(ActionListener.class)); }).when(usersStore).getUser(eq(storeUsernames[0]), any(ActionListener.class));
@ -303,13 +303,13 @@ public class TransportGetUsersActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
assertThat(throwableRef.get(), is(notNullValue())); assertThat(throwableRef.get(), is(notNullValue()));
assertThat(throwableRef.get(), is(sameInstance(t))); assertThat(throwableRef.get(), is(sameInstance(e)));
assertThat(responseRef.get(), is(nullValue())); assertThat(responseRef.get(), is(nullValue()));
if (request.usernames().length == 1) { if (request.usernames().length == 1) {
verify(usersStore, times(1)).getUser(eq(request.usernames()[0]), any(ActionListener.class)); verify(usersStore, times(1)).getUser(eq(request.usernames()[0]), any(ActionListener.class));

View File

@ -67,7 +67,7 @@ public class TransportPutUserActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -95,7 +95,7 @@ public class TransportPutUserActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -124,7 +124,7 @@ public class TransportPutUserActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -167,7 +167,7 @@ public class TransportPutUserActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
@ -179,7 +179,7 @@ public class TransportPutUserActionTests extends ESTestCase {
} }
public void testException() { public void testException() {
final Throwable t = randomFrom(new ElasticsearchSecurityException(""), new IllegalStateException(), new ValidationException()); final Exception e = randomFrom(new ElasticsearchSecurityException(""), new IllegalStateException(), new ValidationException());
final User user = new User("joe"); final User user = new User("joe");
NativeUsersStore usersStore = mock(NativeUsersStore.class); NativeUsersStore usersStore = mock(NativeUsersStore.class);
TransportPutUserAction action = new TransportPutUserAction(Settings.EMPTY, mock(ThreadPool.class), TransportPutUserAction action = new TransportPutUserAction(Settings.EMPTY, mock(ThreadPool.class),
@ -192,7 +192,7 @@ public class TransportPutUserActionTests extends ESTestCase {
Object[] args = invocation.getArguments(); Object[] args = invocation.getArguments();
assert args.length == 2; assert args.length == 2;
ActionListener<Boolean> listener = (ActionListener<Boolean>) args[1]; ActionListener<Boolean> listener = (ActionListener<Boolean>) args[1];
listener.onFailure(t); listener.onFailure(e);
return null; return null;
} }
}).when(usersStore).putUser(eq(request), any(ActionListener.class)); }).when(usersStore).putUser(eq(request), any(ActionListener.class));
@ -206,14 +206,14 @@ public class TransportPutUserActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
throwableRef.set(e); throwableRef.set(e);
} }
}); });
assertThat(responseRef.get(), is(nullValue())); assertThat(responseRef.get(), is(nullValue()));
assertThat(throwableRef.get(), is(notNullValue())); assertThat(throwableRef.get(), is(notNullValue()));
assertThat(throwableRef.get(), sameInstance(t)); assertThat(throwableRef.get(), sameInstance(e));
verify(usersStore, times(1)).putUser(eq(request), any(ActionListener.class)); verify(usersStore, times(1)).putUser(eq(request), any(ActionListener.class));
} }
} }

View File

@ -5,7 +5,6 @@
*/ */
package org.elasticsearch.xpack.security.audit; package org.elasticsearch.xpack.security.audit;
import org.elasticsearch.Version;
import org.elasticsearch.common.inject.Guice; import org.elasticsearch.common.inject.Guice;
import org.elasticsearch.common.inject.Injector; import org.elasticsearch.common.inject.Injector;
import org.elasticsearch.common.io.stream.NamedWriteableRegistry; import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
@ -15,20 +14,17 @@ import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.settings.SettingsModule; import org.elasticsearch.common.settings.SettingsModule;
import org.elasticsearch.indices.breaker.CircuitBreakerService; import org.elasticsearch.indices.breaker.CircuitBreakerService;
import org.elasticsearch.node.Node; import org.elasticsearch.node.Node;
import org.elasticsearch.xpack.security.audit.logfile.LoggingAuditTrail;
import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.ESTestCase;
import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.TestThreadPool;
import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.threadpool.ThreadPool;
import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.Transport;
import org.elasticsearch.transport.local.LocalTransport; import org.elasticsearch.transport.local.LocalTransport;
import org.elasticsearch.xpack.security.audit.logfile.LoggingAuditTrail;
import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.instanceOf;
import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.notNullValue;
/**
*
*/
public class AuditTrailModuleTests extends ESTestCase { public class AuditTrailModuleTests extends ESTestCase {
public void testEnabled() throws Exception { public void testEnabled() throws Exception {
Settings settings = Settings.builder() Settings settings = Settings.builder()
@ -93,7 +89,7 @@ public class AuditTrailModuleTests extends ESTestCase {
try { try {
Guice.createInjector(settingsModule, new AuditTrailModule(settings)); Guice.createInjector(settingsModule, new AuditTrailModule(settings));
fail("Expect initialization to fail when an unknown audit trail output is configured"); fail("Expect initialization to fail when an unknown audit trail output is configured");
} catch (Throwable t) { } catch (Exception e) {
// expected // expected
} }
} }

View File

@ -49,9 +49,6 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times; import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
/**
*
*/
public class FileUserRolesStoreTests extends ESTestCase { public class FileUserRolesStoreTests extends ESTestCase {
private Settings settings; private Settings settings;
private Environment env; private Environment env;
@ -217,8 +214,8 @@ public class FileUserRolesStoreTests extends ESTestCase {
try { try {
FileUserRolesStore.parseFile(file, logger); FileUserRolesStore.parseFile(file, logger);
fail("expected a parse failure"); fail("expected a parse failure");
} catch (Throwable t) { } catch (Exception e) {
this.logger.info("expected", t); this.logger.info("expected", e);
} }
} }

View File

@ -56,9 +56,9 @@ public class LdapSessionFactoryTests extends LdapTestCase {
ldapServer.setProcessingDelayMillis(500L); ldapServer.setProcessingDelayMillis(500L);
try (LdapSession session = sessionFactory.session(user, userPass)) { try (LdapSession session = sessionFactory.session(user, userPass)) {
fail("expected connection timeout error here"); fail("expected connection timeout error here");
} catch (Throwable t) { } catch (Exception e) {
assertThat(t, instanceOf(ElasticsearchSecurityException.class)); assertThat(e, instanceOf(ElasticsearchSecurityException.class));
assertThat(t.getCause().getMessage(), containsString("A client-side timeout was encountered while waiting ")); assertThat(e.getCause().getMessage(), containsString("A client-side timeout was encountered while waiting "));
} finally { } finally {
ldapServer.setProcessingDelayMillis(0L); ldapServer.setProcessingDelayMillis(0L);
} }
@ -85,11 +85,11 @@ public class LdapSessionFactoryTests extends LdapTestCase {
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
try (LdapSession session = sessionFactory.session(user, userPass)) { try (LdapSession session = sessionFactory.session(user, userPass)) {
fail("expected connection timeout error here"); fail("expected connection timeout error here");
} catch (Throwable t) { } catch (Exception e) {
long time = System.currentTimeMillis() - start; long time = System.currentTimeMillis() - start;
assertThat(time, lessThan(10000L)); assertThat(time, lessThan(10000L));
assertThat(t, instanceOf(IOException.class)); assertThat(e, instanceOf(IOException.class));
assertThat(t.getCause().getCause().getMessage(), containsString("within the configured timeout of")); assertThat(e.getCause().getCause().getMessage(), containsString("within the configured timeout of"));
} }
} }

View File

@ -55,7 +55,7 @@ public class SelfReschedulingRunnableTests extends ESTestCase {
final ThreadPool threadPool = mock(ThreadPool.class); final ThreadPool threadPool = mock(ThreadPool.class);
final AbstractRunnable runnable = new AbstractRunnable() { final AbstractRunnable runnable = new AbstractRunnable() {
@Override @Override
public void onFailure(Throwable throwable) { public void onFailure(Exception throwable) {
} }
@Override @Override
@ -88,7 +88,7 @@ public class SelfReschedulingRunnableTests extends ESTestCase {
final CountDownLatch pauseLatch = new CountDownLatch(1); final CountDownLatch pauseLatch = new CountDownLatch(1);
final AbstractRunnable runnable = new AbstractRunnable() { final AbstractRunnable runnable = new AbstractRunnable() {
@Override @Override
public void onFailure(Throwable throwable) { public void onFailure(Exception throwable) {
} }
@Override @Override
@ -195,7 +195,7 @@ public class SelfReschedulingRunnableTests extends ESTestCase {
final AtomicInteger runCounter = new AtomicInteger(0); final AtomicInteger runCounter = new AtomicInteger(0);
final AbstractRunnable runnable = new AbstractRunnable() { final AbstractRunnable runnable = new AbstractRunnable() {
@Override @Override
public void onFailure(Throwable throwable) { public void onFailure(Exception throwable) {
failureCounter.incrementAndGet(); failureCounter.incrementAndGet();
} }
@ -238,7 +238,7 @@ public class SelfReschedulingRunnableTests extends ESTestCase {
final CountDownLatch stopCalledLatch = new CountDownLatch(1); final CountDownLatch stopCalledLatch = new CountDownLatch(1);
final AbstractRunnable runnable = new AbstractRunnable() { final AbstractRunnable runnable = new AbstractRunnable() {
@Override @Override
public void onFailure(Throwable throwable) { public void onFailure(Exception throwable) {
throw new IllegalStateException("we should never be in this method!"); throw new IllegalStateException("we should never be in this method!");
} }

View File

@ -192,13 +192,13 @@ public class HandshakeWaitingHandlerTests extends ESTestCase {
try { try {
serverBootstrap.bind(new InetSocketAddress(InetAddress.getLoopbackAddress(), randomPort)); serverBootstrap.bind(new InetSocketAddress(InetAddress.getLoopbackAddress(), randomPort));
break; break;
} catch (Throwable t) { } catch (Exception e) {
if (t.getCause() instanceof BindException) { if (e.getCause() instanceof BindException) {
logger.error("Tried to bind to port [{}], going to retry", randomPort); logger.error("Tried to bind to port [{}], going to retry", randomPort);
randomPort = randomIntBetween(49000, 65500); randomPort = randomIntBetween(49000, 65500);
} }
if (tries >= maxTries) { if (tries >= maxTries) {
throw new RuntimeException("Failed to start server bootstrap [" + tries + "] times, stopping", t); throw new RuntimeException("Failed to start server bootstrap [" + tries + "] times, stopping", e);
} }
tries++; tries++;
} }

View File

@ -28,9 +28,6 @@ import java.util.Arrays;
import static org.elasticsearch.common.io.FileSystemUtils.isAccessibleDirectory; import static org.elasticsearch.common.io.FileSystemUtils.isAccessibleDirectory;
/**
*
*/
public class XPackExtensionsService { public class XPackExtensionsService {
private final Settings settings; private final Settings settings;
@ -186,7 +183,7 @@ public class XPackExtensionsService {
"Settings instance"); "Settings instance");
} }
} }
} catch (Throwable e) { } catch (Exception e) {
throw new ElasticsearchException("Failed to load extension class [" + extClass.getName() + "]", e); throw new ElasticsearchException("Failed to load extension class [" + extClass.getName() + "]", e);
} }
} }

View File

@ -105,7 +105,7 @@ public class TransportXPackInfoActionTests extends ESTestCase {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
error.set(e); error.set(e);
latch.countDown(); latch.countDown();
} }

View File

@ -166,7 +166,7 @@ public class WatcherLifeCycleService extends AbstractComponent implements Cluste
} }
@Override @Override
public void onFailure(Throwable throwable) { public void onFailure(Exception throwable) {
logger.warn("updating manually stopped isn't acked", throwable); logger.warn("updating manually stopped isn't acked", throwable);
latch.countDown(); latch.countDown();
} }
@ -199,7 +199,7 @@ public class WatcherLifeCycleService extends AbstractComponent implements Cluste
} }
@Override @Override
public void onFailure(String source, Throwable throwable) { public void onFailure(String source, Exception throwable) {
latch.countDown(); latch.countDown();
logger.warn("couldn't update watcher metadata [{}]", throwable, source); logger.warn("couldn't update watcher metadata [{}]", throwable, source);
} }

View File

@ -206,7 +206,7 @@ public class ExecutionService extends AbstractComponent {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
Throwable cause = ExceptionsHelper.unwrapCause(e); Throwable cause = ExceptionsHelper.unwrapCause(e);
if (cause instanceof EsRejectedExecutionException) { if (cause instanceof EsRejectedExecutionException) {
logger.debug("failed to store watch records due to overloaded threadpool [{}]", ExceptionsHelper.detailedMessage(e)); logger.debug("failed to store watch records due to overloaded threadpool [{}]", ExceptionsHelper.detailedMessage(e));

View File

@ -125,7 +125,7 @@ public class TriggeredWatchStore extends AbstractComponent {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
listener.onFailure(e); listener.onFailure(e);
} }
}); });
@ -149,7 +149,7 @@ public class TriggeredWatchStore extends AbstractComponent {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
listener.onFailure(e); listener.onFailure(e);
} }
}); });
@ -183,7 +183,7 @@ public class TriggeredWatchStore extends AbstractComponent {
} }
@Override @Override
public void onFailure(Throwable e) { public void onFailure(Exception e) {
listener.onFailure(e); listener.onFailure(e);
} }
}); });

View File

@ -42,8 +42,8 @@ public final class SearchRequestEquivalence {
r2.writeTo(output1); r2.writeTo(output1);
byte[] bytes2 = BytesReference.toBytes(output1.bytes()); byte[] bytes2 = BytesReference.toBytes(output1.bytes());
return Arrays.equals(bytes1, bytes2); return Arrays.equals(bytes1, bytes2);
} catch (Throwable t) { } catch (Exception e) {
throw illegalState("could not compare search requests", t); throw illegalState("could not compare search requests", e);
} }
} }
} }

View File

@ -85,9 +85,9 @@ public class TransportGetWatchAction extends WatcherTransportAction<GetWatchRequ
listener.onFailure(e); listener.onFailure(e);
} }
} catch (Throwable t) { } catch (Exception e) {
logger.error("failed to get watch [{}]", t, request.getId()); logger.error("failed to get watch [{}]", e, request.getId());
throw t; throw e;
} }
} }

View File

@ -332,8 +332,8 @@ public class ManualExecutionTests extends AbstractWatcherIntegrationTestCase {
WatchRecord record = executionService.execute(ctxBuilder.build()); WatchRecord record = executionService.execute(ctxBuilder.build());
assertThat(record, notNullValue()); assertThat(record, notNullValue());
assertThat(record.state(), is(ExecutionState.NOT_EXECUTED_WATCH_MISSING)); assertThat(record.state(), is(ExecutionState.NOT_EXECUTED_WATCH_MISSING));
} catch (Throwable t) { } catch (Exception e) {
throw new ElasticsearchException("Failure mode execution of [{}] failed in an unexpected way", t, watchId); throw new ElasticsearchException("Failure mode execution of [{}] failed in an unexpected way", e, watchId);
} }
} }
} }