JSON deserialization does not handle OverflowError
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 52/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- backend-api-design
Direzione di ricerca
Inizia in packages/serialization/json/kiota_serialization_json/json_parse_node.py, in JsonParseNode.try_get_anything() e nel catch intorno a parse_timedelta_string(). Riproduci l’input "50001140846:00021" e controlla gli altri gestori catch menzionati nell’issue. Il lavoro è completato quando i valori non validi passano invariati senza generare un OverflowError non gestito.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Trying to deserialize certain misformatted strings result in an uncaught OverflowError exception instead of passing through the string unchanged. In particular, trying to deserialize a timedelta string such as "50001140846:00021" results in the following:
Traceback (most recent call last):
File "lib\site-packages\kiota_abstractions\date_utils.py", line 66, in parse_timedelta_string
return parse_timedelta_from_iso_format(text)
File "lib\site-packages\kiota_abstractions\date_utils.py", line 34, in parse_timedelta_from_iso_format
raise ValueError(f"Invalid ISO8601 duration string: {text}")
ValueError: Invalid ISO8601 duration string: 50001140846:00021
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
[...]
File "lib\site-packages\kiota_serialization_json\json_parse_node.py", line 335, in try_get_anything
return parse_timedelta_string(value)
File "lib\site-packages\kiota_abstractions\date_utils.py", line 76, in parse_timedelta_string
return timedelta(hours=hours, minutes=minutes, seconds=seconds)
OverflowError: days=2083380868; must have magnitude <= 999999999
The issue is that JsonParseNode.try_get_anything() only handles ValueError exceptions instead of also handling OverflowError. Changing this line to catch both ValueError and OverflowError allows deserialization to be successful:
https://github.com/microsoft/kiota-python/blob/b23edcbf268efdb81d14ef59cecc6c9565288248/packages/serialization/json/kiota_serialization_json/json_parse_node.py#L336
Most likely the other catch handlers in try_get_anything() should be updated as well.
- Lingua principale
- Python
- Stelle
- 31
- Fork
- 39
- Merge medio
- 13h 21m
- PR unite (30g)
- 46
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/kiota-python
-
help wanted type:bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
microsoft/kiota-python#477 · 2 commenti ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
microsoft/kiota-python#745 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
microsoft/kiota-python#744 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
microsoft/kiota-python#737 · 1 commento ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
microsoft/kiota-python#722 · 1 commento ·
Tutte le issue di microsoft/kiota-python
Issue simili
-
agent-ready documentation needs-triage
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
-
documentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 91/100
-
workflow-status page template still says reusable workflows are "triggered only by workflow_call:" Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
-
instance instance add
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
searxng/searx-instances#939 · 1 commento ·
-
area-deployment area-integrations triage:bot-seen
Difficoltà 2/5 Mezza giornata Idoneità per principianti 86/100