apache / apache/servicecomb-java-chassis
[QUESTION] - 针对org.json.JSONObject无法生成对应的契约
- 主要语言
- Java
- 星标
- 1.9k
- 派生
- 814
- 平均合并
- 8 天 23 小时
- 30 天内合并 PR
- 1
描述
### Steps to reproduce (if applicable)
所使用开源软件为org.json:json版本号为20240303
定义一个Controller接口,返回类型为
```
class A {
String data;
JSONObject detail;
}
```
生成契约时报错空指针异常
Caused by: java.lang.IllegalStateException: Generate swagger operation failed, method=TestController:test, cause=Cannot invoke "io.swagger.v3.oas.models.media.Schema.get$ref()" because "result" is null
at org.apache.servicecomb.swagger.generator.core.AbstractSwaggerGenerator.scanMethods(AbstractSwaggerGenerator.java:240)
at org.apache.servicecomb.swagger.generator.core.AbstractSwaggerGenerator.generate(AbstractSwaggerGenerator.java:122)
at org.apache.servicecomb.swagger.generator.SwaggerGenerator.generate(SwaggerGenerator.java:33)
at org.apache.servicecomb.swagger.engine.SwaggerEnvironment.createProducer(SwaggerEnvironment.java:120)
at org.apache.servicecomb.core.provider.producer.ProducerProviderManager.registerSchema(ProducerProviderManager.java:98)
at org.apache.servicecomb.core.provider.producer.ProducerProviderManager.registerProducerMetas(ProducerProviderManager.java:87)
at org.apache.servicecomb.core.provider.producer.ProducerProviderManager.init(ProducerProviderManager.java:73)
at org.apache.servicecomb.core.SCBEngine.doRun(SCBEngine.java:359)
### What have you tried so far?
_No response_
### Additional context
_No response_
贡献指南
这个仓库没有索引到贡献指南
调研方向
使用 org.json:json 20240303 以及 issue 中描述的 controller 返回类型复现该故障,然后检查第 240 行的 AbstractSwaggerGenerator.scanMethods 和 SwaggerGenerator 入口点。确定 JSONObject 的预期契约表示形式,并确保生成过程在没有所报告的 null 结果的情况下完成;如果确定了相关测试位置,则添加或更新一个针对性的回归测试。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- java
- 领域
- api, backend-api-design
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 35/100