mapbox / mapbox/mapbox-java

[services-geojson] NullPointerException in Feature.addXxxProperty() or getXxxProperty() methods

Offen
#1,527 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Java
Sterne
438
Forks
117
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

All methods like addStringProperty(), addNumberProperty(), getStringProperty()… don’t guard against a null properties field.

The “guard” is at a higher level, as using Feature static factory methods ensure that the properties field is never null.
However Feature.GsonTypeAdapter.read() directly calls the Feature constructor which doesn’t prevent a null properties field. So for example, if someone calls FeatureCollection.fromJson() which contains a feature that has a null properties field, it will be decoded by the GsonAdapter and then calling addStringProperty() on this feature will crash.

Small code sample to demonstrate that

public void addPropertyCrash() {
    final String json = "{" +
            "\"type\": \"FeatureCollection\"," +
            "\"features\": [" +
                "{" +
                    "\"type\": \"Feature\"," +
                    "\"properties\": null," +
                    "\"geometry\": null" +
                "}" +
            "]" +
            "}";

    FeatureCollection actual = FeatureCollection.fromJson(json);
    actual.features().get(0).addStringProperty("key", "value");
}

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne bei Feature.GsonTypeAdapter.read(), das über FeatureCollection.fromJson() erreicht wird, und untersuche, wie ein Null-Feld properties Feature.addStringProperty() sowie die zugehörigen add/get-Methoden erreicht. Überprüfe, dass das bereitgestellte FeatureCollection-JSON-Beispiel keine NullPointerException mehr verursacht, wenn eine Eigenschaft hinzugefügt wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
backend
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.