[services-geojson] NullPointerException in Feature.addXxxProperty() or getXxxProperty() methods
还没有人认领这个 Issue。
评估
调研方向
从 FeatureCollection.fromJson() 调用到的 Feature.GsonTypeAdapter.read() 开始,检查 null 的 properties 字段如何到达 Feature.addStringProperty() 及相关的 add/get 方法。验证提供的 FeatureCollection JSON 示例在添加属性时不再导致 NullPointerException。
由索引模型根据 Issue 内容生成。
描述
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");
}
- 主要语言
- Java
- 星标
- 438
- 派生
- 117
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
mapbox/mapbox-java 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
mapbox/mapbox-java#1640 ·
-
难度 4/5 3-5 天 新手友好度 55/100
mapbox/mapbox-java#1635 ·
-
难度 5/5 一周以上 新手友好度 15/100
mapbox/mapbox-java#1619 ·
-
Mapbox-java incompatible with gson 2.13.0 and up - call to internal GSON classes that were renamed 未关闭
难度 2/5 1-3 小时 新手友好度 48/100
mapbox/mapbox-java#1614 · 2 条评论 · 1 个 reaction ·
-
难度 5/5 一周以上 新手友好度 20/100
mapbox/mapbox-java#1612 · 1 个 reaction ·
查看 mapbox/mapbox-java 的全部 Issue
相似的 Issue
-
certification
难度 1/5 1 小时以内 新手友好度 80/100
-
难度 2/5 1-3 小时 新手友好度 75/100
-
[BUG] ECR GetAuthorizationToken returns a proxyEndpoint for the default region, not the request's 未关闭bug ecr
难度 2/5 1-3 小时 新手友好度 75/100
-
Needs: Triage Type: Feature request
难度 2/5 1-3 小时 新手友好度 70/100
AntennaPod/AntennaPod#8794 ·
-
agentic-workflows
难度 2/5 1-3 小时 新手友好度 65/100
github/copilot-sdk#2760 ·