B2ByteRange.parse throws NumberFormatException for numbers beyond long range
I maintainer di solito rispondono entro 3 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
Direzione di ricerca
Inizia da core/src/main/java/com/backblaze/b2/util/B2ByteRange.java: il pattern delle cifre si trova intorno alla riga 29, parse è alle righe 56-60, e longOrNullFromStr alle righe 143-149 chiama Long.valueOf. Verifica leggendo il codice che una sequenza di cifre che supera il limite di long lancia una NumberFormatException, quindi intercettala nell'helper in modo che parse restituisca null come indicato nella sua javadoc. È completato quando B2ByteRange.parse("bytes=99999999999999999999-") restituisce null e un unit test per questo input passa.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What happens
The javadoc says B2ByteRange.parse returns null on error. The pattern accepts any run of digits, then Long.valueOf throws NumberFormatException for a number that does not fit in a long, for example bytes=99999999999999999999-. The exception escapes parse instead of the documented null.
Where
core/src/main/java/com/backblaze/b2/util/B2ByteRange.java:29 (the pattern), :56-60 (parse, documented to return null on error) and :143-149 (longOrNullFromStr, which calls Long.valueOf).
Why it matters
Impact: Wrong request or result (documented null return becomes an exception), loud. Severity: Medium, because it needs an out-of-range number in the input (unusual), and a caller can work around it by catching NumberFormatException.
How to check
Found by reading the code, not reproduced. Call B2ByteRange.parse("bytes=99999999999999999999-"): by reading, Long.valueOf throws. Catching NumberFormatException in longOrNullFromStr/parse and returning null would match the documentation.
Version
Seen at v6.5.0. Present on the default branch: present.
- Lingua principale
- Java
- Stelle
- 103
- Fork
- 23
- Merge medio
- 5g 8h
- PR unite (30g)
- 3
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
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 Backblaze/b2-sdk-java
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Backblaze/b2-sdk-java#248 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
Backblaze/b2-sdk-java#247 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Backblaze/b2-sdk-java#246 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Backblaze/b2-sdk-java#242 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Backblaze/b2-sdk-java#241 ·
I maintainer di solito rispondono entro 3 giorni
Tutte le issue di Backblaze/b2-sdk-java
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
IETF-Hackathon/pqc-certificates#351 ·
I maintainer di solito rispondono entro 2 giorni
-
bug(core): skip_nodes.json is missing SELECT and PRE, causing Python and Java to insert separators into dropdown options and preformatted textForse già presa @Bhumit267 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
ExceptionThrowShouldUseContext: NullPointerException on a catch block inside an annotation typeForse già presa @Carbon14-48 l’ha presa oggi. Apertaapproved
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
checkstyle/checkstyle#22784 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno