summaryrefslogtreecommitdiff
path: root/core/src/test/java/org/elasticsearch/node
diff options
context:
space:
mode:
authorJason Tedor <jason@tedor.me>2016-12-08 19:59:02 -0500
committerGitHub <noreply@github.com>2016-12-08 19:59:02 -0500
commitc9882dd1a0f3c513d4c39e99c8a928ec2a6bab18 (patch)
tree8590b54c2a41111e743f9385e09a38baf20e54fd /core/src/test/java/org/elasticsearch/node
parent4aae0178912309eba92e2ae8028facd636c8679a (diff)
Avoid NPE in NodeService#stats if HTTP is disabled
This commit adds safety against an NPE if HTTP stats are requested but HTTP is disabled on a node. Relates #22060
Diffstat (limited to 'core/src/test/java/org/elasticsearch/node')
-rw-r--r--core/src/test/java/org/elasticsearch/node/service/NodeServiceTests.java43
1 files changed, 43 insertions, 0 deletions
diff --git a/core/src/test/java/org/elasticsearch/node/service/NodeServiceTests.java b/core/src/test/java/org/elasticsearch/node/service/NodeServiceTests.java
new file mode 100644
index 0000000000..e9097b8142
--- /dev/null
+++ b/core/src/test/java/org/elasticsearch/node/service/NodeServiceTests.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to Elasticsearch under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.elasticsearch.node.service;
+
+import org.elasticsearch.action.admin.cluster.node.stats.NodesStatsRequest;
+import org.elasticsearch.action.admin.cluster.node.stats.NodesStatsResponse;
+import org.elasticsearch.common.network.NetworkModule;
+import org.elasticsearch.common.settings.Settings;
+import org.elasticsearch.test.ESSingleNodeTestCase;
+
+import static org.hamcrest.Matchers.hasSize;
+
+public class NodeServiceTests extends ESSingleNodeTestCase {
+
+ @Override
+ protected Settings nodeSettings() {
+ return Settings.builder().put(NetworkModule.HTTP_ENABLED.getKey(), false).build();
+ }
+
+ public void testHttpServerDisabled() {
+ // test for a bug where if HTTP stats were requested but HTTP was disabled, NodeService would hit a NullPointerException
+ NodesStatsResponse response = client().admin().cluster().nodesStats(new NodesStatsRequest().http(true)).actionGet();
+ assertThat(response.getNodes(), hasSize(1));
+ }
+
+}