optimizely / optimizely/java-sdk
[BUG] Gson deserialization treats integers as doubles, breaking downstream serializers
まだ誰も着手していません。
- 主要言語
- Java
- スター
- 44
- フォーク
- 32
- 平均マージ
- 8時間 39分
- マージ済み PR(30日)
- 1
説明
Is there an existing issue for this?
- I have searched the existing issues
SDK Version
4.4.0
Current Behavior
When using JSON variables with GsonConfigParser, integers within JSON variables appear as doubles to outside consumers. The Map output then can't be returned to valid JSON for use with downstream JSON parsing tools, like kotlinx.serialization.
Expected Behavior
Integer-looking JSON values are deserialized to longs, while decimal-looking JSON values are deserialized to doubles.
Steps To Reproduce
See associated pull request.
Java Version
21
Link
No response
Logs
No response
Severity
Minor issue
Workaround/Solution
Re-interpret doubles as integers where needed.
Recent Change
No response
Conflicts
No response
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
SDK バージョン 4.4.0 のエントリポイント GsonConfigParser から開始し、issue に記載された JSON 変数の動作を Java 21 で再現します。結果の Map で整数に見える値と小数に見える値を比較します。整数が longs として、少数が doubles として表現され、下流の JSON シリアライゼーションを壊さなければ完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java
- 領域
- backend
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 静か
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 55/100