John Blum created GEODE-8256:
--------------------------------
Summary: The Jackson ObjectMapper used by a PdxInstance does not
properly handle Java 8 Types
Key: GEODE-8256
URL: https://issues.apache.org/jira/browse/GEODE-8256
Project: Geode
Issue Type: Improvement
Reporter: John Blum
The Jackson {{ObjectMapper}} in the {{PdxInstanceImpl}} class (see
[here|https://github.com/apache/geode/blob/rel/v1.12.0/geode-core/src/main/java/org/apache/geode/pdx/internal/PdxInstanceImpl.java#L68-L75])is
not properly configured.
Specifically, it cannot handle *Java 8* types since these types are not
included in Jackson 2, by default, primarily because Jackson 2 is based on Java
6 (not Java 8). However, that does not mean Jackson 2 cannot handle Java 8
types, when configured properly with extension modules.
To make matters worse, the {{ObjectMapper}} used by PDX, and specifically the
{{PdxInstance}} implementation, violates the _Open/Closed_ software design
principle, so there is literally no way to modify (i.e. override/extend) the
configuration of the {{ObjectMapper}} as required by the application.
See
[here|https://github.com/spring-projects/spring-boot-data-geode/blob/1.3.0.RELEASE/spring-geode/src/test/java/org/springframework/geode/data/json/JsonCacheDataImporterExporterIntegrationTests.java#L583-L618]
for a test case demonstrating the issue.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)