[ https://issues.apache.org/jira/browse/SCB-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16646266#comment-16646266 ]
ASF GitHub Bot commented on SCB-737: ------------------------------------ liubao68 closed pull request #936: [SCB-737]Avoid null point exception URL: https://github.com/apache/incubator-servicecomb-java-chassis/pull/936 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/schema/PojoProducers.java b/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/schema/PojoProducers.java index 4e0e3619d..b173ead65 100644 --- a/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/schema/PojoProducers.java +++ b/providers/provider-pojo/src/main/java/org/apache/servicecomb/provider/pojo/schema/PojoProducers.java @@ -63,6 +63,9 @@ protected void processProvider(String beanName, Object bean) { // aop后,新的实例的父类可能是原class,也可能只是个proxy,父类不是原class // 所以,需要先取出原class,再取标注 Class<?> beanCls = BeanUtils.getImplClassFromBean(bean); + if(beanCls == null) { + return; + } RpcSchema rpcSchema = beanCls.getAnnotation(RpcSchema.class); if (rpcSchema == null) { return; diff --git a/providers/provider-rest-common/src/main/java/org/apache/servicecomb/provider/rest/common/RestProducers.java b/providers/provider-rest-common/src/main/java/org/apache/servicecomb/provider/rest/common/RestProducers.java index 5adedfe50..8fac2e201 100644 --- a/providers/provider-rest-common/src/main/java/org/apache/servicecomb/provider/rest/common/RestProducers.java +++ b/providers/provider-rest-common/src/main/java/org/apache/servicecomb/provider/rest/common/RestProducers.java @@ -49,6 +49,9 @@ protected void processProvider(String beanName, Object bean) { // aop后,新的实例的父类可能是原class,也可能只是个proxy,父类不是原class // 所以,需要先取出原class,再取标注 Class<?> beanCls = BeanUtils.getImplClassFromBean(bean); + if(beanCls == null) { + return; + } RestSchema restSchema = beanCls.getAnnotation(RestSchema.class); if (restSchema == null) { return; ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > avoid null point exception > -------------------------- > > Key: SCB-737 > URL: https://issues.apache.org/jira/browse/SCB-737 > Project: Apache ServiceComb > Issue Type: Task > Reporter: laijianbin > Assignee: laijianbin > Priority: Major > > 2018-07-11 > 03:27:52,651Z(28241):ERROR{}[main]org.springframework.boot.SpringApplication.reportFailure(SpringApplication.java:771)-->Application > startup failed > org.springframework.beans.factory.UnsatisfiedDependencyException: Error > creating bean with name 'batchConfig': Unsatisfied dependency expressed > through field 'jobBuilderFactory'; nested exception is > org.springframework.beans.factory.BeanCreationException: Error creating bean > with name 'jobBuilders' defined in class path resource > [org/springframework/batch/core/configuration/annotation/SimpleBatchConfiguration.class]: > Bean instantiation via factory method failed; nested exception is > org.springframework.beans.BeanInstantiationException: Failed to instantiate > [org.springframework.batch.core.configuration.annotation.JobBuilderFactory]: > Factory method 'jobBuilders' threw exception; nested exception is > org.springframework.beans.factory.BeanCreationException: Error creating bean > with name 'jobRepository' defined in class path resource > [org/springframework/batch/core/configuration/annotation/SimpleBatchConfiguration.class]: > Initialization of bean failed; nested exception is > java.lang.NullPointerException > > RELEASE] > at > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) > ~[spring-beans-4.3.5.RELEASE.jar:4.3.5.RELEASE] > at > org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) > ~[spring-beans-4.3.5.RELEASE.jar:4.3.5.RELEASE] > at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) > ~[spring-beans-4.3.5.RELEASE.jar:4.3.5.RELEASE] > at > org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207) > ~[spring-beans-4.3.5.RELEASE.jar:4.3.5.RELEASE] > at > org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136) > ~[spring-beans-4.3.5.RELEASE.jar:4.3.5.RELEASE] > at > org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064) > ~[spring-beans-4.3.5.RELEASE.jar:4.3.5.RELEASE] > at > org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585) > ~[spring-beans-4.3.5.RELEASE.jar:4.3.5.RELEASE] > ... 19 more > Caused by: java.lang.NullPointerException > at > org.apache.servicecomb.provider.rest.common.RestProducers.processProvider(RestProducers.java:52) > ~[provider-rest-common-1.0.0.B003.6.jar:1.0.0.B003.6] > at > org.apache.servicecomb.provider.rest.common.RestProducers.postProcessAfterInitialization(RestProducers.java:43) > ~[provider-rest-common-1.0.0.B003.6.jar:1.0.0.B003.6] > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:423) > ~[spring-beans-4.3.5.RELEASE.jar:4.3.5.RELEASE] > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1594) > ~[spring-beans-4.3.5.RELEASE.jar:4.3.5.RELEASE] > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:554) > ~[spring-beans-4.3.5.RELEASE.jar:4.3.5.RELEASE] > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) > ~[spring-beans-4.3.5.RELEASE.jar:4.3.5.RELEASE] > at > org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) > ~[spring-beans-4.3.5.RELEASE.jar:4.3.5.RELEASE] > at > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) > ~[spring-beans-4.3.5.RELEASE.jar:4.3.5.RELEASE] > at > org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) > ~[spring-beans-4.3.5.RELEASE.jar:4.3.5.RELEASE] > at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) > ~[spring-beans-4.3.5.RELEASE.jar:4.3.5.RELEASE] > at > org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:381) > ~[spring-context-4.3.5.RELEASE.jar:4.3.5.RELEASE] > at > *org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration*$$EnhancerBySpringCGLIB$$9c449ea7.jobRepository(<generated>) > ~[spring-batch-core-3.0.8.RELEASE.jar:3.0.8.RELEASE] > at > org.springframework.batch.core.configuration.annotation.AbstractBatchConfiguration.jobBuilders(AbstractBatchConfiguration.java:58) > ~[spring-batch-core-3.0.8.RELEASE.jar:3.0.8.RELEASE] > at > org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration$$EnhancerBySpringCGLIB$$9c449ea7.CGLIB$jobBuilders$7(<generated>) > ~[spring-batch-core-3.0.8.RELEASE.jar:3.0.8.RELEASE] > at > org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration$$EnhancerBySpringCGLIB$$9c449ea7$$FastClassBySpringCGLIB$$66766304.invoke(<generated>) > ~[spring-batch-core-3.0.8.RELEASE.jar:3.0.8.RELEASE] > at > org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) > ~[spring-core-4.3.5.RELEASE.jar:4.3.5.RELEASE] > -- This message was sent by Atlassian JIRA (v7.6.3#76005)