B2ByteRange.parse throws NumberFormatException for numbers beyond long range
Les mainteneurs répondent en général sous 3 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 78/100
Piste de recherche
Commencez dans core/src/main/java/com/backblaze/b2/util/B2ByteRange.java : le motif des chiffres se trouve vers la ligne 29, parse se situe aux lignes 56 à 60, et longOrNullFromStr aux lignes 143 à 149 appelle Long.valueOf. Vérifiez en lisant le code qu'une suite de chiffres dépassant la capacité d'un long lève une NumberFormatException, puis interceptez-la dans l'assistant afin que parse renvoie null, comme l'indique sa javadoc. C'est terminé lorsque B2ByteRange.parse("bytes=99999999999999999999-") renvoie null et qu'un test unitaire pour cette entrée réussit.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Java
- Étoiles
- 103
- Forks
- 23
- Merge moyen
- 5 j 8 h
- PR mergées (30 j)
- 3
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de Backblaze/b2-sdk-java
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Backblaze/b2-sdk-java#248 ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
Backblaze/b2-sdk-java#247 ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Backblaze/b2-sdk-java#246 ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Backblaze/b2-sdk-java#242 ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Backblaze/b2-sdk-java#241 ·
Les mainteneurs répondent en général sous 3 jours
Toutes les issues de Backblaze/b2-sdk-java
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
IETF-Hackathon/pqc-certificates#351 ·
Les mainteneurs répondent en général sous 2 jours
-
bug(core): skip_nodes.json is missing SELECT and PRE, causing Python and Java to insert separators into dropdown options and preformatted textPeut-être pris @Bhumit267 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour
-
ExceptionThrowShouldUseContext: NullPointerException on a catch block inside an annotation typePeut-être pris @Carbon14-48 l’a pris aujourd’hui. Ouverteapproved
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
checkstyle/checkstyle#22784 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
Les mainteneurs répondent en général sous 1 jour