Skip to content

Commit

Permalink
Disable Jackson field name interning
Browse files Browse the repository at this point in the history
Interning introduces excessive contention
FasterXML/jackson-core#946
  • Loading branch information
schlosna committed Apr 4, 2023
1 parent add558f commit 0123ffd
Showing 1 changed file with 12 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

package com.palantir.conjure.java.serialization;

import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
Expand Down Expand Up @@ -46,7 +47,7 @@ private ObjectMappers() {}
* </ul>
*/
public static JsonMapper newClientJsonMapper() {
return withDefaultModules(JsonMapper.builder(new InstrumentedJsonFactory()))
return withDefaultModules(JsonMapper.builder(jsonFactory()))
.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
.build();
}
Expand Down Expand Up @@ -92,7 +93,7 @@ public static SmileMapper newClientSmileMapper() {
* </ul>
*/
public static JsonMapper newServerJsonMapper() {
return withDefaultModules(JsonMapper.builder(new InstrumentedJsonFactory()))
return withDefaultModules(JsonMapper.builder(jsonFactory()))
.enable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
.build();
}
Expand Down Expand Up @@ -220,9 +221,18 @@ public static ObjectMapper withDefaultModules(ObjectMapper mapper) {
.disable(DeserializationFeature.ACCEPT_FLOAT_AS_INT);
}

private static JsonFactory jsonFactory() {
JsonFactory jsonFactory = new InstrumentedJsonFactory();
// Interning introduces excessive contention https://github.com/FasterXML/jackson-core/issues/946
jsonFactory.disable(JsonFactory.Feature.INTERN_FIELD_NAMES);
return jsonFactory;
}

private static SmileFactory smileFactory() {
return InstrumentedSmileFactory.builder()
.disable(SmileGenerator.Feature.ENCODE_BINARY_AS_7BIT)
// Interning introduces excessive contention https://github.com/FasterXML/jackson-core/issues/946
.disable(JsonFactory.Feature.INTERN_FIELD_NAMES)
.build();
}
}

0 comments on commit 0123ffd

Please sign in to comment.