TurfMeasurement#length method cannot handle empty lists
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Java
- Sterne
- 438
- Forks
- 117
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
The other day, I encountered what I regard as an issue in the following Code snippet: https://github.com/mapbox/mapbox-java/blob/4ae8b78746fb37b2673364bdd4c8702057f3e7f3/services-turf/src/main/java/com/mapbox/turf/TurfMeasurement.java#L227
The scenario is the following: We have a list of GPS points of which some or all are invalid which is denoted by the coordinates being (0 , 0) - which IS bad Design, but our Team cannot change this... 🙄. Thus, we filter out those points before passing it to the length method. We just encountered an IndexOutOfBoundsException when the list is empty because there is no length check on the list. I guess the fix here is relatively easy, but the question ist - what should be returned in this case. We built in a check before hand returning 0 in this particular case. Maybe even a checked exception might be a feasible idea.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne bei services-turf/src/main/java/com/mapbox/turf/TurfMeasurement.java in der Nähe der verlinkten length-Methode und reproduziere den Fehler bei einer leeren Liste. Prüfe, wie die Methode normale Punktlisten verarbeitet, und sieh dir die Verwendung in der Nähe an, um den vorgesehenen Vertrag für leere Eingaben festzustellen. Als erledigt gilt die Aufgabe, wenn das Verhalten abgestimmt ist, der Fall einer leeren Liste nicht mehr unerwartet eine Exception auslöst und die Regressionstestabdeckung dies verifiziert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- backend-api-design
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 35/100