FasterXML / FasterXML/jackson-modules-java8

Cannot read Optionals written with StdTypeResolverBuilder

未關閉
#86 6 則留言 1 個 reaction 已指派 0 人 在 GitHub 檢視
2.19 pr-welcome
主要語言
Java
星號
425
分支
124
PR 合併指標
30 天內沒有已合併 PR

描述

The following test fails on Jackson 2.9.7 and passes on 2.8.11:
```
@Test
public void test() throws Exception {
ObjectMapper mapper = new ObjectMapper();
mapper.setDefaultTyping(
new StdTypeResolverBuilder()
.init(JsonTypeInfo.Id.CLASS, null)
.inclusion(JsonTypeInfo.As.WRAPPER_OBJECT)
);
mapper.registerModule(new Jdk8Module());
String json = mapper.writeValueAsString(new Foo(Optional.of(1)));
System.out.println(json);
mapper.readValue(json, Foo.class);
}

public static class Foo {
private Optional bar;

public Foo() {
}

public Foo(Optional bar) {
this.bar = bar;
}

public Optional getBar() {
return bar;
}

public void setBar(Optional bar) {
this.bar = bar;
}
}
```
Complete runnable project with this test-case can be found on https://github.com/isopov/jackson-optional-test

貢獻指南

這個儲存庫沒有索引到貢獻指南

研究方向

首先針對 Jackson 2.9.7 和 2.8.11 執行 https://github.com/isopov/jackson-optional-test 中的完整測試案例,然後追蹤反序列化期間使用的 Jdk8Module 和 StdTypeResolverBuilder 處理流程。當包含 Optional.of(1) 的序列化 Foo 能夠在受影響的版本上成功讀回時,即表示完成。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
java
領域
backend
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
38/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。