diff options
author | Ryan Ernst <ryan@iernst.net> | 2017-04-12 23:22:43 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-12 23:22:43 -0700 |
commit | c19044ddf6a8ed421d75fdb3db6bb02b06350b8f (patch) | |
tree | 65c34d25d45618efcfb1e00bf78610c4e9741b6e /core/src/main/java/org | |
parent | 12b46bdbc43c238debd8b8093fe821b7e3bff273 (diff) |
Restrict build info loading to ES jar, not any jar (#24049)
This change makes the build info initialization only try to load a jar
manifest if it is the elasticsearch jar. Anything else (eg a repackaged
ES for use of transport client in an uber jar) will contain "Unknown"
for the build info as it does for tests currently.
fixes #21955
Diffstat (limited to 'core/src/main/java/org')
-rw-r--r-- | core/src/main/java/org/elasticsearch/Build.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/core/src/main/java/org/elasticsearch/Build.java b/core/src/main/java/org/elasticsearch/Build.java index a05a412a87..bef9fafe3c 100644 --- a/core/src/main/java/org/elasticsearch/Build.java +++ b/core/src/main/java/org/elasticsearch/Build.java @@ -43,8 +43,10 @@ public class Build { final String date; final boolean isSnapshot; + final String esPrefix = "elasticsearch-" + Version.CURRENT; final URL url = getElasticsearchCodebase(); - if (url.toString().endsWith(".jar")) { + final String urlStr = url.toString(); + if (urlStr.startsWith("file:/") && (urlStr.endsWith(esPrefix + ".jar") || urlStr.endsWith(esPrefix + "-SNAPSHOT.jar"))) { try (JarInputStream jar = new JarInputStream(FileSystemUtils.openFileURLStream(url))) { Manifest manifest = jar.getManifest(); shortHash = manifest.getMainAttributes().getValue("Change"); @@ -54,7 +56,7 @@ public class Build { throw new RuntimeException(e); } } else { - // not running from a jar (unit tests, IDE) + // not running from the official elasticsearch jar file (unit tests, IDE, uber client jar, shadiness) shortHash = "Unknown"; date = "Unknown"; isSnapshot = true; |