继承BaseResponse<ByteArrayOutputStream>的Resp类在反序列化时产生InaccessibleObjectException
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 48/100
Piste de recherche
Commencez par GetMessageResourceResp.java et le code de désérialisation de MessageResource.java autour de la ligne 123, puis suivez la façon dont RawResponse devient Resp pour les réponses non-200 avec JDK 17. Reproduisez l’InaccessibleObjectException et vérifiez que le code de réponse et le message peuvent être obtenus sans désérialiser le champ de données ByteArrayOutputStream.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
在API返回非200状态码(如权限问题、QPS超限等场景)时,SDK会将RawResponse反序列化为Resp类,以获取错误信息。
但继承BaseResponse<ByteArrayOutputStream>的Resp类(主要见于文件下载类API),由于其data字段的类型为ByteArrayOutputStream,在jdk17进行反序列化时,gson会抛出InaccessibleObjectException(因为ByteArrayOutputStream存在非public字段buf和count),导致程序无法正确获取API返回的code和msg
ByteArrayOutputStream本身其实不具备反序列化的可能性,SDK应当在处理此类数据时避免反序列化Resp类的data字段
举例:
GetMessageResourceResp类
https://github.com/larksuite/oapi-sdk-java/blob/4ec09ba4918b5907c17aebd5f95f604e69ea6cc8/larksuite-oapi/src/main/java/com/lark/oapi/service/im/v1/model/GetMessageResourceResp.java#L29
MessageResource类中对GetMessageResourceResp的反序列化操作
https://github.com/larksuite/oapi-sdk-java/blob/4ec09ba4918b5907c17aebd5f95f604e69ea6cc8/larksuite-oapi/src/main/java/com/lark/oapi/service/im/v1/resource/MessageResource.java#L123
- Langage dominant
- Java
- Étoiles
- 311
- Forks
- 115
- Merge moyen
- 19 min
- PR mergées (30 j)
- 2
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de larksuite/oapi-sdk-java
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
larksuite/oapi-sdk-java#197 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
larksuite/oapi-sdk-java#196 ·
-
sdk提供的新增、更新人才接口代码和飞书招聘的接口不一致,导致接口调用失败,返回报错是类型转换失败Peut-être pris @CharLilis l’a pris il y a 83 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
larksuite/oapi-sdk-java#191 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 82/100
larksuite/oapi-sdk-java#149 ·
-
接口响应类型错误Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
larksuite/oapi-sdk-java#79 ·
Toutes les issues de larksuite/oapi-sdk-java
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
-
bug
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
PhasetransCrystal/FPSMatch#47 ·
Les mainteneurs répondent en général sous 1 jour
-
Remove unactionable info logOuvertebug
Difficulté 1/5 Moins d'une heure Accessibilité débutants 76/100
apache/maven-toolchains-plugin#205 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
Les mainteneurs répondent en général sous 1 jour
-
[Bug] Dated CSV export filenames use the UTC day rather than the operator dayPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
apache/rocketmq-dashboard#6896 ·
Les mainteneurs répondent en général sous 3 jours