[BUG] - JsonPropertyIntrospector处理record类型里的枚举值时,会报空指针异常
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 48/100
Línea de trabajo
Comienza en org.apache.servicecomb.swagger.extend.introspector.JsonPropertyIntrospector.findPropertyDescription, identificado en la línea 51 del stack trace. Ejecuta la reproducción proporcionada de MainTest mediante SwaggerUtils.resolveTypeSchemas tanto para ClassRsp como para RecordRsp, y verifica después que las propiedades de record que contienen Lang ya no provoquen una NullPointerException, mientras que el caso existente de Class siga funcionando correctamente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Java
- Estrellas
- 1.9k
- Forks
- 813
- Merge medio
- 8 d 23 h
- PR fusionados (30 d)
- 1
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/servicecomb-java-chassis
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
apache/servicecomb-java-chassis#5106 ·
-
question
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
apache/servicecomb-java-chassis#5153 · 1 comentario ·
-
[QUESTION] - 请发布3.x的最新版本 Abiertoquestion
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
apache/servicecomb-java-chassis#5146 ·
-
[FEATURE] - When will ServiceComb support Spring Boot 4.x, Spring Framework 7.x, and Jackson 3.x? Abiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
apache/servicecomb-java-chassis#5145 ·
-
2.x bug
apache/servicecomb-java-chassis#5141 · 1 asignado ·
Todos los issues de apache/servicecomb-java-chassis
Issues similares
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Abiertoarea/plugin
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
kestra-io/plugin-kestra#190 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Add canonical URLs and a sitemap Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
integra-team-red/meet-map#249 ·
-
[Studio][Bug] Cancelled create-user dialog keeps the password and admin switch for the next attempt Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
apache/rocketmq-dashboard#5064 ·