diff --git a/core/src/main/java/org/elasticsearch/env/Environment.java b/core/src/main/java/org/elasticsearch/env/Environment.java index 00b1436f7c1..f431a7f646e 100644 --- a/core/src/main/java/org/elasticsearch/env/Environment.java +++ b/core/src/main/java/org/elasticsearch/env/Environment.java @@ -183,7 +183,9 @@ public class Environment { Settings.Builder finalSettings = Settings.builder().put(settings); finalSettings.put(PATH_HOME_SETTING.getKey(), homeFile); - finalSettings.putArray(PATH_DATA_SETTING.getKey(), dataPaths); + if (PATH_DATA_SETTING.exists(settings)) { + finalSettings.putArray(PATH_DATA_SETTING.getKey(), dataPaths); + } finalSettings.put(PATH_LOGS_SETTING.getKey(), logsFile); this.settings = finalSettings.build(); diff --git a/core/src/test/java/org/elasticsearch/env/EnvironmentTests.java b/core/src/test/java/org/elasticsearch/env/EnvironmentTests.java index 38c5133f91a..083e2ad5cc0 100644 --- a/core/src/test/java/org/elasticsearch/env/EnvironmentTests.java +++ b/core/src/test/java/org/elasticsearch/env/EnvironmentTests.java @@ -102,6 +102,19 @@ public class EnvironmentTests extends ESTestCase { assertThat(environment.dataFiles(), equalTo(new Path[]{pathHome.resolve("data")})); } + public void testPathDataNotSetInEnvironmentIfNotSet() { + final Path defaultPathData = createTempDir().toAbsolutePath(); + final Settings settings = Settings.builder() + .put("path.home", createTempDir().toAbsolutePath()) + .put("default.path.data", defaultPathData) + .build(); + assertFalse(Environment.PATH_DATA_SETTING.exists(settings)); + assertTrue(Environment.DEFAULT_PATH_DATA_SETTING.exists(settings)); + final Environment environment = new Environment(settings); + assertFalse(Environment.PATH_DATA_SETTING.exists(environment.settings())); + assertTrue(Environment.DEFAULT_PATH_DATA_SETTING.exists(environment.settings())); + } + public void testDefaultPathLogs() { final Path defaultPathLogs = createTempDir().toAbsolutePath(); final Settings settings = Settings.builder()