optimizely / optimizely/java-sdk

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

Aperta
#622 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

acknowledged bug
Lingua principale
Java
Stelle
44
Fork
32
Merge medio
8h 39m
PR unite (30g)
1

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Parti dal punto di ingresso GsonConfigParser nella versione 4.4.0 dell'SDK e riproduci con Java 21 il comportamento delle variabili JSON descritto nell'issue. Confronta i valori che sembrano interi e quelli che sembrano decimali nella Map risultante; il lavoro è completato quando gli interi sono rappresentati come longs e i decimali come doubles senza compromettere la serializzazione JSON downstream.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
backend
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
55/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.