继承BaseResponse<ByteArrayOutputStream>的Resp类在反序列化时产生InaccessibleObjectException
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Inizia con GetMessageResourceResp.java e il codice di deserializzazione in MessageResource.java intorno alla riga 123, quindi segui come RawResponse diventa Resp per le risposte non-200 con JDK 17. Riproduci la InaccessibleObjectException e verifica che il codice di risposta e il messaggio possano essere ottenuti senza deserializzare il campo dati ByteArrayOutputStream.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
在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
- Lingua principale
- Java
- Stelle
- 311
- Fork
- 115
- Merge medio
- 19m
- PR unite (30g)
- 2
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di larksuite/oapi-sdk-java
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
larksuite/oapi-sdk-java#197 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
larksuite/oapi-sdk-java#196 ·
-
sdk提供的新增、更新人才接口代码和飞书招聘的接口不一致,导致接口调用失败,返回报错是类型转换失败Forse già presa @CharLilis l’ha presa 80 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
larksuite/oapi-sdk-java#191 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
larksuite/oapi-sdk-java#149 ·
-
接口响应类型错误Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
larksuite/oapi-sdk-java#79 ·
Tutte le issue di larksuite/oapi-sdk-java
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
NationalSecurityAgency/ghidra#9884 ·
I maintainer di solito rispondono entro 2 giorni
-
Status: Pending Review Type: Feature Request
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
OpenRefine/OpenRefine#8019 ·
I maintainer di solito rispondono entro 1 giorno
-
`timer` rule rejects dates the engine acceptsForse già presa @MFA-G l’ha presa oggi. Apertabug ready
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
camunda/bpmnlint-plugin-camunda-compat#281 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
status: waiting-for-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100