diff options
author | 2016-07-07 09:18:39 +0000 | |
---|---|---|
committer | 2016-07-07 11:18:50 +0000 | |
commit | c9cff95306d136a5b1b13c87d9500005e3ac4901 (patch) | |
tree | 47bf45b9ef959f66f1172ad02fd98bffc6b1bd40 | |
parent | c03c9a0e497099a733f7b9236b58e684e35ff3dc (diff) |
Split and extract the SHA1 from Maven files that have extra paths in them
This fixes #1461, which leads to bad sha1 values for some maven jars.
Closes #1473.
--
Reviewed-on: https://github.com/bazelbuild/bazel/pull/1473
MOS_MIGRATED_REVID=126785326
2 files changed, 20 insertions, 2 deletions
diff --git a/src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/maven/Resolver.java b/src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/maven/Resolver.java index 12fc4f9176..fd19b03729 100644 --- a/src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/maven/Resolver.java +++ b/src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/maven/Resolver.java @@ -272,11 +272,16 @@ public class Resolver { HttpURLConnection connection = (HttpURLConnection) new URL(sha1Url).openConnection(); connection.setInstanceFollowRedirects(true); connection.connect(); - return CharStreams.toString( - new InputStreamReader(connection.getInputStream(), Charset.defaultCharset())).trim(); + return extractSha1( + CharStreams.toString( + new InputStreamReader(connection.getInputStream(), Charset.defaultCharset()))); } catch (IOException e) { handler.handle(Event.warn("Failed to download the sha1 at " + sha1Url)); } return null; } + + static String extractSha1(String sha1Contents) { + return sha1Contents.split("\\s+")[0]; + } } diff --git a/src/tools/generate_workspace/src/test/java/com/google/devtools/build/workspace/maven/ResolverTest.java b/src/tools/generate_workspace/src/test/java/com/google/devtools/build/workspace/maven/ResolverTest.java index b392175711..82046eea2a 100644 --- a/src/tools/generate_workspace/src/test/java/com/google/devtools/build/workspace/maven/ResolverTest.java +++ b/src/tools/generate_workspace/src/test/java/com/google/devtools/build/workspace/maven/ResolverTest.java @@ -55,4 +55,17 @@ public class ResolverTest { Rule rule = rules.iterator().next(); assertThat(rule.name()).isEqualTo("x_y"); } + + @Test + public void testExtractSha1() { + assertThat(Resolver.extractSha1("5fe28b9518e58819180a43a850fbc0dd24b7c050")) + .isEqualTo("5fe28b9518e58819180a43a850fbc0dd24b7c050"); + + assertThat(Resolver.extractSha1("5fe28b9518e58819180a43a850fbc0dd24b7c050\n")) + .isEqualTo("5fe28b9518e58819180a43a850fbc0dd24b7c050"); + + assertThat(Resolver.extractSha1( + "83cd2cd674a217ade95a4bb83a8a14f351f48bd0 /home/maven/repository-staging/to-ibiblio/maven2/antlr/antlr/2.7.7/antlr-2.7.7.jar")) + .isEqualTo("83cd2cd674a217ade95a4bb83a8a14f351f48bd0"); + } } |