diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/core-patch/src/main/java/org/apache/skywalking/apm/plugin/spring/patch/GetPropertyDescriptorsInterceptor.java b/apm-sniffer/apm-sdk-plugin/spring-plugins/core-patch/src/main/java/org/apache/skywalking/apm/plugin/spring/patch/GetPropertyDescriptorsInterceptor.java index d25ca0496a6144b3820b4fcf63a2521bf3761531..276f8421564eed058ee30a36d12615348bfc9699 100644 --- a/apm-sniffer/apm-sdk-plugin/spring-plugins/core-patch/src/main/java/org/apache/skywalking/apm/plugin/spring/patch/GetPropertyDescriptorsInterceptor.java +++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/core-patch/src/main/java/org/apache/skywalking/apm/plugin/spring/patch/GetPropertyDescriptorsInterceptor.java @@ -41,7 +41,8 @@ public class GetPropertyDescriptorsInterceptor implements InstanceMethodsAroundI PropertyDescriptor[] propertyDescriptors = (PropertyDescriptor[])ret; - if (EnhancedInstance.class.isAssignableFrom(((BeanWrapperImpl)objInst).getRootClass())) { + Class rootClass = ((BeanWrapperImpl) objInst).getRootClass(); + if (rootClass != null && EnhancedInstance.class.isAssignableFrom(rootClass)) { List newPropertyDescriptors = new ArrayList(); for (PropertyDescriptor descriptor : propertyDescriptors) { if (!"skyWalkingDynamicField".equals(descriptor.getName())) {