Skip to content

Instantly share code, notes, and snippets.

@jsvd
Created September 25, 2019 15:57
Show Gist options
  • Save jsvd/97353b2d5803e3e1eb6df27571d33959 to your computer and use it in GitHub Desktop.
Save jsvd/97353b2d5803e3e1eb6df27571d33959 to your computer and use it in GitHub Desktop.
diff --git a/src/main/java/com/jrjackson/JrJacksonBase.java b/src/main/java/com/jrjackson/JrJacksonBase.java
index 5b1748e..e000915 100644
--- a/src/main/java/com/jrjackson/JrJacksonBase.java
+++ b/src/main/java/com/jrjackson/JrJacksonBase.java
@@ -63,7 +63,7 @@ public class JrJacksonBase extends RubyObject {
}
provider = RubyJacksonModule.createProvider(simpleFormat);
} else {
- provider = RubyJacksonModule.createProvider();
+ provider = RubyJacksonModule.getDefaultProvider();
}
try {
diff --git a/src/main/java/com/jrjackson/RubyJacksonModule.java b/src/main/java/com/jrjackson/RubyJacksonModule.java
index 6c21f0a..80bb740 100644
--- a/src/main/java/com/jrjackson/RubyJacksonModule.java
+++ b/src/main/java/com/jrjackson/RubyJacksonModule.java
@@ -18,6 +18,7 @@ public class RubyJacksonModule extends SimpleModule {
public static final ObjectMapper static_mapper = new ObjectMapper();
public static final JsonFactory factory = new JsonFactory(static_mapper).disable(JsonFactory.Feature.FAIL_ON_SYMBOL_HASH_OVERFLOW);
private static final TimeZone utcTimeZone = TimeZone.getTimeZone("UTC");
+ private static final ThreadLocal<DefaultSerializerProvider> localProvider = ThreadLocal.withInitial(() -> createProvider());
static {
static_mapper.registerModule(new RubyJacksonModule().addSerializer(
@@ -60,6 +61,10 @@ public class RubyJacksonModule extends SimpleModule {
return createProvider(rdf);
}
+ public static DefaultSerializerProvider getDefaultProvider() {
+ return localProvider.get();
+ }
+
public static ObjectMapper rawBigNumberMapper() {
static_mapper.enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS);
static_mapper.enable(DeserializationFeature.USE_BIG_INTEGER_FOR_INTS);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment