[BUG] - JsonPropertyIntrospector处理record类型里的枚举值时,会报空指针异常
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 48/100
Direção de pesquisa
Comece em org.apache.servicecomb.swagger.extend.introspector.JsonPropertyIntrospector.findPropertyDescription, identificado na linha 51 do stack trace. Execute a reprodução fornecida do MainTest por meio de SwaggerUtils.resolveTypeSchemas para ClassRsp e RecordRsp, e então verifique se as propriedades de record que contêm Lang não geram mais uma NullPointerException, enquanto o caso existente de Class continua funcionando corretamente.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Steps to Reproduce
简单示例:
package test;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.models.OpenAPI;
import org.apache.servicecomb.swagger.SwaggerUtils;
import org.junit.jupiter.api.Test;
class MainTest {
@Test
void test() {
SwaggerUtils.resolveTypeSchemas(new OpenAPI(), ClassRsp.class); // OK
SwaggerUtils.resolveTypeSchemas(new OpenAPI(), RecordRsp.class); // ERROR
}
public enum Lang {
JAVA, CHINESE, UNKNOWN;
}
public static class ClassRsp {
@Schema(description = "language")
private Lang lang;
public Lang getLang() {
return lang;
}
public void setLang(Lang lang) {
this.lang = lang;
}
}
public record RecordRsp(
@Schema(description = "language") Lang lang
) {}
}
Expected Behavior
报错:
java.lang.NullPointerException: Cannot invoke "java.lang.reflect.AnnotatedElement.getAnnotations()" because the return value of "com.fasterxml.jackson.databind.introspect.Annotated.getAnnotated()" is null
at org.apache.servicecomb.swagger.extend.introspector.JsonPropertyIntrospector.findPropertyDescription(JsonPropertyIntrospector.java:51)
at com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair.findPropertyDescription(AnnotationIntrospectorPair.java:450)
at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.getMetadata(POJOPropertyBuilder.java:228)
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._anyIndexed(POJOPropertiesCollector.java:1376)
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._sortProperties(POJOPropertiesCollector.java:1278)
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collectAll(POJOPropertiesCollector.java:529)
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.getPropertyMap(POJOPropertiesCollector.java:413)
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.getProperties(POJOPropertiesCollector.java:255)
at com.fasterxml.jackson.databind.introspect.BasicBeanDescription._properties(BasicBeanDescription.java:164)
at com.fasterxml.jackson.databind.introspect.BasicBeanDescription.findProperties(BasicBeanDescription.java:239)
at io.swagger.v3.core.jackson.ModelResolver.resolveAccessMode(ModelResolver.java:1960)
at io.swagger.v3.core.jackson.ModelResolver.resolve(ModelResolver.java:672)
at org.apache.servicecomb.swagger.extend.ModelResolverExt.resolve(ModelResolverExt.java:110)
at io.swagger.v3.core.converter.ModelConverterContextImpl.resolve(ModelConverterContextImpl.java:97)
at io.swagger.v3.core.converter.ModelConverters.resolveAsResolvedSchema(ModelConverters.java:158)
at org.apache.servicecomb.swagger.SwaggerUtils.resolveTypeSchemas(SwaggerUtils.java:213)
at test.MainTest.test(MainTest.java:13)
Servicecomb Version
No response
Additional Context
No response
- Linguagem predominante
- Java
- Estrelas
- 1.9k
- Forks
- 813
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de apache/servicecomb-java-chassis
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
apache/servicecomb-java-chassis#5106 ·
-
question
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
apache/servicecomb-java-chassis#5153 · 1 comentário ·
-
[QUESTION] - 请发布3.x的最新版本Abertaquestion
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 25/100
apache/servicecomb-java-chassis#5146 ·
-
[FEATURE] - When will ServiceComb support Spring Boot 4.x, Spring Framework 7.x, and Jackson 3.x?Abertaenhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
apache/servicecomb-java-chassis#5145 ·
-
[BUG] - The latest instance information cannot be obtained when cache instances is empty.Talvez livre de novo @chengyouling assumiu há 150 dias e não há nenhum pull request aberto. Aberta2.x bug
apache/servicecomb-java-chassis#5141 · 1 responsável ·
Todas as issues de apache/servicecomb-java-chassis
Issues semelhantes
-
agent:working documentation enhancement go:build lane:needs-decision
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Sanne/incus-spawn#1435 · 3 comentários ·
Mantenedores costumam responder em até 1 dia
-
enhancement good first issue up-for-grabs
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 80/100
AnikethTS/ChangeRadar#22 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
openai/openai-java#1202 ·
Mantenedores costumam responder em até 1 dia
-
admin sql type: bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 2 dias
-
library-new-request priority
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
oracle/graalvm-reachability-metadata#10911 · 1 comentário ·
Mantenedores costumam responder em até 1 dia