aws / aws/aws-lambda-java-libs

Bug: JSON serialization ignores fields from child classes (Java 8 Lambda runtime works, Java 11 Lambda runtime fails)

オープン
#358 コメント 6 件 リアクション 1 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
548
フォーク
241
平均マージ
2日 5分
マージ済み PR(30日)
11

説明

I noticed this issue when updating my lambda function from Java 8 to Java 11, and it seems to be related to the code in this repository.

The problematic situation occurs when a lambda function declares that it returns `TestParent`, but actually returns an instance of `TestChild`:

```java
public class TestParent {

public String parentField = "parentField";
}

public class TestChild extends TestParent {

public String childField = "childField";
}
```

To reproduce the issue, please run the attached test case (maven project): [aws-lambda-json-child-field-bug.zip](https://github.com/aws/aws-lambda-java-libs/files/9210528/aws-lambda-json-child-field-bug.zip)

It should fail with an error like below:
```
org.junit.ComparisonFailure:
Expected :{"parentField":"parentField","childField":"childField"}
Actual :{"parentField":"parentField"}
```

You can see that the fields from `TestChild` are missing. This is the issue, and this seems to be new -- in the Java 8 lambda runtime this worked ok.

Thanks for any help!

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。