From be2365811455efb6bf2628574380721aec7975d8 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Tue, 4 Jun 2019 17:53:24 -0700 Subject: [PATCH] Avoid clobbering shared testcluster JAR files when installing modules (#42879) (cherry picked from commit 6da9aa29170c840bba08637c106c85bf16359979) --- .../elasticsearch/gradle/testclusters/ElasticsearchNode.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java b/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java index bba94f6c7d1..83a702f8a85 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java @@ -23,6 +23,7 @@ import org.elasticsearch.gradle.Distribution; import org.elasticsearch.gradle.FileSupplier; import org.elasticsearch.gradle.OS; import org.elasticsearch.gradle.Version; +import org.gradle.api.file.DuplicatesStrategy; import org.gradle.api.logging.Logger; import org.gradle.api.logging.Logging; @@ -361,6 +362,9 @@ public class ElasticsearchNode implements TestClusterConfiguration { private void installModules() { if (distribution == Distribution.INTEG_TEST) { modules.forEach(module -> services.copy(spec -> { + // ensure we don't override any existing JARs, since these are hardlinks other clusters might be using those files + spec.setDuplicatesStrategy(DuplicatesStrategy.EXCLUDE); + if (module.getName().toLowerCase().endsWith(".zip")) { spec.from(services.zipTree(module)); } else if (module.isDirectory()) {