apache / apache/servicecomb-java-chassis

[QUESTION] - 针对org.json.JSONObject无法生成对应的契约

未关闭
#4,749 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
question
主要语言
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

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。