summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorRyan Ernst <ryan@iernst.net>2017-04-12 23:22:43 -0700
committerGitHub <noreply@github.com>2017-04-12 23:22:43 -0700
commitc19044ddf6a8ed421d75fdb3db6bb02b06350b8f (patch)
tree65c34d25d45618efcfb1e00bf78610c4e9741b6e /core
parent12b46bdbc43c238debd8b8093fe821b7e3bff273 (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')
-rw-r--r--core/src/main/java/org/elasticsearch/Build.java6
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;