Ensure latch is counted down in ssl reload test
This change ensures we always countdown the latch in the
SSLConfigurationReloaderTests to prevent the suite from timing out in
case of an exception. Additionally, we also increase the logging of the
resource watcher in case an IOException occurs.
See
@@ -17,6 +17,7 @@ import org.elasticsearch.env.TestEnvironment;
import org.elasticsearch.test.ESTestCase;
import org.elasticsearch.test.http.MockResponse;
import org.elasticsearch.test.http.MockWebServer;
+import org.elasticsearch.test.junit.annotations.TestLogging;
import org.elasticsearch.threadpool.TestThreadPool;
import org.elasticsearch.threadpool.ThreadPool;
import org.elasticsearch.watcher.ResourceWatcherService;
@@ -55,6 +56,7 @@ import static org.hamcrest.Matchers.sameInstance;
/**
* Unit tests for the reloading of SSL configuration
*/
+@TestLogging("org.elasticsearch.watcher:TRACE")
public class SSLConfigurationReloaderTests extends ESTestCase {
private ThreadPool threadPool;
@@ -435,21 +437,21 @@ public class SSLConfigurationReloaderTests extends ESTestCase {
assertThat(sslService.sslContextHolder(config).sslContext(), sameInstance(context));
}
- private void validateSSLConfigurationIsReloaded(Settings settings, Environment env,
- Consumer<SSLContext> preChecks,
- Runnable modificationFunction,
- Consumer<SSLContext> postChecks)
- throws Exception {
+ private void validateSSLConfigurationIsReloaded(Settings settings, Environment env, Consumer<SSLContext> preChecks,
+ Runnable modificationFunction, Consumer<SSLContext> postChecks) throws Exception {
final CountDownLatch reloadLatch = new CountDownLatch(1);
final SSLService sslService = new SSLService(settings, env);
final SSLConfiguration config = sslService.getSSLConfiguration("xpack.ssl");
new SSLConfigurationReloader(env, sslService, resourceWatcherService) {
@Override
void reloadSSLContext(SSLConfiguration configuration) {
+ try {
super.reloadSSLContext(configuration);
+ } finally {
reloadLatch.countDown();
}
+ }
};
// Baseline checks
preChecks.accept(sslService.sslContextHolder(config).sslContext());
