You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by fo...@apache.org on 2021/01/12 11:55:00 UTC

svn commit: r1885391 - /jackrabbit/oak/trunk/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/ElasticResponseHandler.java

Author: fortino
Date: Tue Jan 12 11:55:00 2021
New Revision: 1885391

URL: http://svn.apache.org/viewvc?rev=1885391&view=rev
Log:
OAK-9311 oak-search-elastic: disable String.intern when deserializing

Modified:
    jackrabbit/oak/trunk/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/ElasticResponseHandler.java

Modified: jackrabbit/oak/trunk/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/ElasticResponseHandler.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/ElasticResponseHandler.java?rev=1885391&r1=1885390&r2=1885391&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/ElasticResponseHandler.java (original)
+++ jackrabbit/oak/trunk/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/ElasticResponseHandler.java Tue Jan 12 11:55:00 2021
@@ -18,6 +18,8 @@ package org.apache.jackrabbit.oak.plugin
 
 import com.fasterxml.jackson.annotation.JsonCreator;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.core.JsonFactory;
+import com.fasterxml.jackson.core.JsonFactoryBuilder;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.jackrabbit.oak.plugins.index.search.FieldNames;
@@ -42,7 +44,12 @@ public class ElasticResponseHandler {
 
     private static final ObjectMapper JSON_MAPPER;
     static {
-        JSON_MAPPER = new ObjectMapper();
+        // disable String.intern
+        // https://github.com/elastic/elasticsearch/issues/39890
+        // https://github.com/FasterXML/jackson-core/issues/332
+        JsonFactoryBuilder factoryBuilder = new JsonFactoryBuilder();
+        factoryBuilder.disable(JsonFactory.Feature.INTERN_FIELD_NAMES);
+        JSON_MAPPER = new ObjectMapper(factoryBuilder.build());
         JSON_MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
     }