Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

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

Aberta
#4,239 3 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
35/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
java
Domínio
api, backend

Direção de pesquisa

Rastreie a decodificação da resposta desde ProduceJsonProcessor.doDecodeResponse, passando por ProduceProcessor.decodeResponse e DefaultHttpClientFilter.extractResponse, com foco na validação do comprimento de strings de StreamReadConstraints do Jackson. Determine onde um comprimento máximo de string no nível do serviço poderia ser configurado e, em seguida, verifique se o limite configurado é respeitado ao decodificar uma resposta com tamanho excedente.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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源码中来看,并没有提供配置该长度的配置项,是否可以加一个

Linguagem predominante
Java
Estrelas
1.9k
Forks
813
Merge médio
8d 23h
PRs com merge (30d)
1

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de apache/servicecomb-java-chassis

Todas as issues de apache/servicecomb-java-chassis

Issues semelhantes

Mais issues de Java

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.