From e31f72e906df9f41e96495f0d255a40e19a13a3f Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Wed, 6 Jan 2021 15:07:06 -0500 Subject: [PATCH] Update to jimfs 1.2 (#67120) A new version of this test dependency is finally available, enabling us to remove a hack from production code we've long carried because of a bug in that test dependency. This commit upgrades our tests to use jimfs-1.2. --- buildSrc/version.properties | 5 +++++ distribution/tools/keystore-cli/build.gradle | 4 ++-- distribution/tools/plugin-cli/build.gradle | 6 +++--- .../elasticsearch/plugins/InstallPluginCommand.java | 13 ------------- qa/evil-tests/build.gradle | 13 +++++++++++-- x-pack/plugin/security/cli/build.gradle | 6 +++--- x-pack/qa/saml-idp-tests/build.gradle | 13 +++++++++++-- x-pack/qa/security-tools-tests/build.gradle | 4 ++-- 8 files changed, 37 insertions(+), 27 deletions(-) diff --git a/buildSrc/version.properties b/buildSrc/version.properties index 557ccc6c2203..75db7470fcac 100644 --- a/buildSrc/version.properties +++ b/buildSrc/version.properties @@ -43,3 +43,8 @@ mocksocket = 1.2 # benchmark dependencies jmh = 1.19 + +# test dependencies +# when updating this version, also update :qa:evil-tests +jimfs = 1.2 +jimfs_guava = 30.1-jre diff --git a/distribution/tools/keystore-cli/build.gradle b/distribution/tools/keystore-cli/build.gradle index b83a52b45f6f..71003c5fc6bc 100644 --- a/distribution/tools/keystore-cli/build.gradle +++ b/distribution/tools/keystore-cli/build.gradle @@ -23,6 +23,6 @@ dependencies { compileOnly project(":server") compileOnly project(":libs:elasticsearch-cli") testImplementation project(":test:framework") - testImplementation 'com.google.jimfs:jimfs:1.1' - testRuntimeOnly 'com.google.guava:guava:18.0' + testImplementation "com.google.jimfs:jimfs:${versions.jimfs}" + testRuntimeOnly "com.google.guava:guava:${versions.jimfs_guava}" } diff --git a/distribution/tools/plugin-cli/build.gradle b/distribution/tools/plugin-cli/build.gradle index f2f81aabc532..65a032f4cf41 100644 --- a/distribution/tools/plugin-cli/build.gradle +++ b/distribution/tools/plugin-cli/build.gradle @@ -27,8 +27,8 @@ dependencies { api "org.bouncycastle:bcpg-fips:1.0.4" api "org.bouncycastle:bc-fips:1.0.2" testImplementation project(":test:framework") - testImplementation 'com.google.jimfs:jimfs:1.1' - testRuntimeOnly 'com.google.guava:guava:18.0' + testImplementation "com.google.jimfs:jimfs:${versions.jimfs}" + testRuntimeOnly "com.google.guava:guava:${versions.jimfs_guava}" } tasks.named("dependencyLicenses").configure { @@ -67,4 +67,4 @@ tasks.named("thirdPartyAudit").configure { 'org.bouncycastle.jcajce.provider.ProvSunTLSKDF$TLSExtendedMasterSecretGenerator', 'org.bouncycastle.jcajce.provider.ProvSunTLSKDF$TLSExtendedMasterSecretGenerator$2' ) -} \ No newline at end of file +} diff --git a/distribution/tools/plugin-cli/src/main/java/org/elasticsearch/plugins/InstallPluginCommand.java b/distribution/tools/plugin-cli/src/main/java/org/elasticsearch/plugins/InstallPluginCommand.java index e231cba49590..0ef44ae368bf 100644 --- a/distribution/tools/plugin-cli/src/main/java/org/elasticsearch/plugins/InstallPluginCommand.java +++ b/distribution/tools/plugin-cli/src/main/java/org/elasticsearch/plugins/InstallPluginCommand.java @@ -746,19 +746,6 @@ class InstallPluginCommand extends EnvironmentAwareCommand { private Path stagingDirectory(Path pluginsDir) throws IOException { try { return Files.createTempDirectory(pluginsDir, ".installing-", PosixFilePermissions.asFileAttribute(PLUGIN_DIR_PERMS)); - } catch (IllegalArgumentException e) { - // Jimfs throws an IAE where it should throw an UOE - // remove when google/jimfs#30 is integrated into Jimfs - // and the Jimfs test dependency is upgraded to include - // this pull request - final StackTraceElement[] elements = e.getStackTrace(); - if (elements.length >= 1 - && elements[0].getClassName().equals("com.google.common.jimfs.AttributeService") - && elements[0].getMethodName().equals("setAttributeInternal")) { - return stagingDirectoryWithoutPosixPermissions(pluginsDir); - } else { - throw e; - } } catch (UnsupportedOperationException e) { return stagingDirectoryWithoutPosixPermissions(pluginsDir); } diff --git a/qa/evil-tests/build.gradle b/qa/evil-tests/build.gradle index 1da40bbb0f62..ac394dd15781 100644 --- a/qa/evil-tests/build.gradle +++ b/qa/evil-tests/build.gradle @@ -27,7 +27,7 @@ apply plugin: 'elasticsearch.testclusters' apply plugin: 'elasticsearch.standalone-test' dependencies { - testImplementation 'com.google.jimfs:jimfs:1.1' + testImplementation "com.google.jimfs:jimfs:1.2" } // TODO: give each evil test its own fresh JVM for more isolation. @@ -46,7 +46,16 @@ tasks.named("thirdPartyAudit").configure { 'com.google.common.cache.Striped64', 'com.google.common.cache.Striped64$1', 'com.google.common.cache.Striped64$Cell', + 'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray', + 'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray$1', + 'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray$2', + 'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray$3', + 'com.google.common.hash.Striped64', + 'com.google.common.hash.Striped64$1', + 'com.google.common.hash.Striped64$Cell', 'com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator', - 'com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator$1' + 'com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator$1', + 'com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper', + 'com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper$1' ) } diff --git a/x-pack/plugin/security/cli/build.gradle b/x-pack/plugin/security/cli/build.gradle index c55e45924e49..d3dac1d87902 100644 --- a/x-pack/plugin/security/cli/build.gradle +++ b/x-pack/plugin/security/cli/build.gradle @@ -10,11 +10,11 @@ dependencies { compileOnly project(path: xpackModule('core'), configuration: 'default') api "org.bouncycastle:bcpkix-jdk15on:${versions.bouncycastle}" api "org.bouncycastle:bcprov-jdk15on:${versions.bouncycastle}" - testImplementation('com.google.jimfs:jimfs:1.1') { + testImplementation("com.google.jimfs:jimfs:${versions.jimfs}") { // this is provided by the runtime classpath, from the security project - exclude group: 'com.google.guava', module: 'guava' + exclude group: "com.google.guava", module: "guava" } - testRuntimeOnly 'com.google.guava:guava:19.0' + testRuntimeOnly "com.google.guava:guava:${versions.jimfs_guava}" testImplementation project(":test:framework") testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') } diff --git a/x-pack/qa/saml-idp-tests/build.gradle b/x-pack/qa/saml-idp-tests/build.gradle index aff69b0800fe..18b852b1c143 100644 --- a/x-pack/qa/saml-idp-tests/build.gradle +++ b/x-pack/qa/saml-idp-tests/build.gradle @@ -7,7 +7,7 @@ apply plugin: 'elasticsearch.test.fixtures' dependencies { testImplementation project(path: xpackModule('core'), configuration: 'testArtifacts') - testImplementation 'com.google.jimfs:jimfs:1.1' + testImplementation "com.google.jimfs:jimfs:${versions.jimfs}" } testFixtures.useFixture ":x-pack:test:idp-fixture" @@ -105,8 +105,17 @@ tasks.named("thirdPartyAudit").configure { 'com.google.common.cache.Striped64', 'com.google.common.cache.Striped64$1', 'com.google.common.cache.Striped64$Cell', + 'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray', + 'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray$1', + 'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray$2', + 'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray$3', + 'com.google.common.hash.Striped64', + 'com.google.common.hash.Striped64$1', + 'com.google.common.hash.Striped64$Cell', 'com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator', - 'com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator$1' + 'com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator$1', + 'com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper', + 'com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper$1' ) ignoreMissingClasses( diff --git a/x-pack/qa/security-tools-tests/build.gradle b/x-pack/qa/security-tools-tests/build.gradle index 4b4ef432c387..51e6b5aef727 100644 --- a/x-pack/qa/security-tools-tests/build.gradle +++ b/x-pack/qa/security-tools-tests/build.gradle @@ -3,8 +3,8 @@ apply plugin: 'elasticsearch.standalone-test' dependencies { testImplementation project(xpackModule('security')) testImplementation project(path: xpackModule('security'), configuration: 'testArtifacts') - testImplementation 'com.google.jimfs:jimfs:1.1' - testRuntimeOnly 'com.google.guava:guava:16.0.1' + testImplementation "com.google.jimfs:jimfs:${versions.jimfs}" + testRuntimeOnly "com.google.guava:guava:${versions.jimfs_guava}" } // add test resources from security, so certificate tool tests can use example certs