Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Jackson在处理字符串时存在长度限制,是否可以添加配置项,供业务控制其所能解析的字符传长度?

Offen
#4,239 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
java
Bereich
api, backend

Rechercherichtung

Verfolge die Dekodierung der Antwort von ProduceJsonProcessor.doDecodeResponse über ProduceProcessor.decodeResponse bis zu DefaultHttpClientFilter.extractResponse, mit Fokus auf Jacksons Validierung der String-Länge durch StreamReadConstraints. Ermittle, wo eine maximale String-Länge auf Service-Ebene konfiguriert werden könnte, und überprüfe anschließend, dass ein konfiguriertes Limit beim Dekodieren einer übergroßen Antwort eingehalten wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

enhancement

当前遇到一个问题,是服务端返回的响应消息中,字符串长度过长,导致jackson解析失败

Caused by: com.fasterxml.jackson.core.exc.StreamConstraintsException: String length (20051112) exceeds the maximum length (20000000)
	at com.fasterxml...core.StreamReadConstraints.validateStringLength:324
	at com.fasterxml...util.ReadConstrainedTextBuffer.validateStringLength:27
	at com.fasterxml...util.TextBuffer.finishCurrentSegment:939
	at com.fasterxml...json.UTF8StreamJsonParser._finishString2:2584
	at com.fasterxml...json.UTF8StreamJsonParser._finishAndReturnString:2560
	at com.fasterxml...json.UTF8StreamJsonParser.getText:335
	at com.fasterxml...jsonorg.JSONObjectDeserializer.deserialize:51
	at com.fasterxml...jsonorg.JSONObjectDeserializer.deserialize:48
	at com.fasterxml...jsonorg.JSONObjectDeserializer.deserialize:14
	at com.fasterxml...deser.DefaultDeserializationContext.readRootValue:323
	at com.fasterxml...databind.ObjectMapper._readMapAndClose:4825mas
	at com.fasterxml...databind.ObjectMapper.readValue:3825
	at org.apache...produce.ProduceJsonProcessor.doDecodeResponse:64
	at org.apache...produce.ProduceProcessor.decodeResponse:76
	at org.apache...http.DefaultHttpClientFilter.extractResponse:105
	at org.apache...http.DefaultHttpClientFilter.afterReceiveResponse:139
	at org.apache...http.RestClientInvocation.lambda$processResponseBody$7:251

20000000是jackson提供的默认值;从chassis源码中来看,并没有提供配置该长度的配置项,是否可以加一个

Vorherrschende Sprache
Java
Sterne
1.9k
Forks
813
Ø Merge
8 T. 23 Std.
Gemergte PRs (30 T.)
1

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus apache/servicecomb-java-chassis

Alle Issues in apache/servicecomb-java-chassis

Ähnliche Issues

Weitere Issues zu Java

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.