B2ByteRange.parse throws NumberFormatException for numbers beyond long range

Ouverte Adaptée aux débutants
#245 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

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
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
java
Domaine
backend

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

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de Backblaze/b2-sdk-java

Toutes les issues de Backblaze/b2-sdk-java

Issues similaires

Plus d'issues Java

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.