optimizely / optimizely/java-sdk

[BUG] Gson deserialization treats integers as doubles, breaking downstream serializers

オープン
#622 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

acknowledged bug
主要言語
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

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

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

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

SDK バージョン 4.4.0 のエントリポイント GsonConfigParser から開始し、issue に記載された JSON 変数の動作を Java 21 で再現します。結果の Map で整数に見える値と小数に見える値を比較します。整数が longs として、少数が doubles として表現され、下流の JSON シリアライゼーションを壊さなければ完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
backend
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
55/100

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

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