Repository navigation
Open
Labels
Description
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
Activity
SweetWuXiaoMei commentedon Oct 27, 2025
Can you fix it with pr
fix bug JsonPropertyIntrospector处理record类型里的枚举值时,会报空指针异常 apache#4983
fix bug JsonPropertyIntrospector处理record类型里的枚举值时,会报空指针异常--add licence a…
fix bug JsonPropertyIntrospector处理record类型里的枚举值时,会报空指针异常 apache#4983
caimo commentedon Nov 8, 2025
https://github.com/apache/servicecomb-java-chassis/pull/5012/files
这样行不
fix bug JsonPropertyIntrospector处理record类型里的枚举值时,会报空指针异常——修复checkstyle …
fix bug JsonPropertyIntrospector处理record类型里的枚举值时,会报空指针异常 apache#4983
fix bug JsonPropertyIntrospector处理record类型里的枚举值时,会报空指针异常 #4983 (#5012)
hezhangjian commentedon Nov 12, 2026
A fix for this NPE was merged into
masterin #5012. The latest published 3.x release, 3.3.0, predates that merge and does not include the fix.Could you share the exact ServiceComb version you are using? If you can test a build from
masterin a development environment, please also confirm whether it resolves your reproducer. I have not found a backport PR to3.3.xor 2.x.