apache / apache/servicecomb-java-chassis

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

オープン
#4,749 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
question
主要言語
Java
スター
1.9k
フォーク
814
平均マージ
8日 23時間
マージ済み PR(30日)
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 を短くまとめたダイジェスト。