aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server
diff options
context:
space:
mode:
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>2013-11-22 18:47:17 +0100
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>2013-11-22 18:47:17 +0100
commit29d069c5f0881253e4c6a1a1aef372b3140aaf8d (patch)
tree9c7b25e68411f7d4363398d1e5792c0084d80acd /sonar-server
parente01b87b68026b52c209ae669913daff916117cd0 (diff)
downloadsonarqube-29d069c5f0881253e4c6a1a1aef372b3140aaf8d.tar.gz
sonarqube-29d069c5f0881253e4c6a1a1aef372b3140aaf8d.zip
SONAR-4904 Disable dynamic mapping in ES
Diffstat (limited to 'sonar-server')
-rw-r--r--sonar-server/src/main/java/org/sonar/server/search/SearchIndex.java8
-rw-r--r--sonar-server/src/test/java/org/sonar/server/search/SearchIndexTest.java9
2 files changed, 15 insertions, 2 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/search/SearchIndex.java b/sonar-server/src/main/java/org/sonar/server/search/SearchIndex.java
index 9912a933b97..622c2048c63 100644
--- a/sonar-server/src/main/java/org/sonar/server/search/SearchIndex.java
+++ b/sonar-server/src/main/java/org/sonar/server/search/SearchIndex.java
@@ -54,10 +54,13 @@ public class SearchIndex {
private static final Logger LOG = LoggerFactory.getLogger(SearchIndex.class);
private static final Settings INDEX_DEFAULT_SETTINGS = ImmutableSettings.builder()
- .put("index.number_of_shards", 1)
- .put("index.number_of_replicas", 0)
+ .put("number_of_shards", 1)
+ .put("number_of_replicas", 0)
+ .put("mapper.dynamic", false)
.build();
+ private static final String INDEX_DEFAULT_MAPPING = "{ \"_default_\": { \"dynamic\": \"strict\" } }";
+
private SearchNode searchNode;
private Client client;
@@ -138,6 +141,7 @@ public class SearchIndex {
profiler.start(format("create index '%s'", index));
indices.prepareCreate(index)
.setSettings(INDEX_DEFAULT_SETTINGS)
+ .addMapping("_default_", INDEX_DEFAULT_MAPPING)
.execute().actionGet();
}
} catch (Exception e) {
diff --git a/sonar-server/src/test/java/org/sonar/server/search/SearchIndexTest.java b/sonar-server/src/test/java/org/sonar/server/search/SearchIndexTest.java
index f0dc8f37e66..aee360967c7 100644
--- a/sonar-server/src/test/java/org/sonar/server/search/SearchIndexTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/search/SearchIndexTest.java
@@ -23,6 +23,7 @@ package org.sonar.server.search;
import com.github.tlrx.elasticsearch.test.EsSetup;
import org.elasticsearch.common.io.BytesStream;
import org.elasticsearch.common.xcontent.XContentFactory;
+import org.elasticsearch.index.mapper.StrictDynamicMappingException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -124,4 +125,12 @@ public class SearchIndexTest {
List<String> docIds = searchIndex.findDocumentIds(SearchQuery.create());
assertThat(docIds).hasSize(numberOfDocuments);
}
+
+ @Test(expected = StrictDynamicMappingException.class)
+ public void should_forbid_dynamic_mapping() throws Exception {
+ searchIndex.addMappingFromClasspath("index", "type1", "/org/sonar/server/search/SearchIndexTest/correct_mapping1.json");
+ searchIndex.put("index", "type1", "666",
+ XContentFactory.jsonBuilder().startObject().field("unknown", "plouf").endObject()
+ );
+ }
}