Skip to content

Defensively handle loadClass null result in BeanUtils.findEditorByConvention (against misbehaving ClassLoader impl such as in the GWT JettyLauncher) #26252

@axeldufo

Description

@axeldufo

Hello,

I'm working on the migration of an application using Java and the Spring framework.
The migration is a big step, the libs versions are moving as follows :

  • Java JDK1.6 to JDK11
  • Spring Framework 3.2.0 to 5.3.1
  • Spring Integration 3.0.0 to 5.4.1
  • Spring Security 3.1.0 to 5.4.2

I spent some times on the compiling issues but now I'm stuck when starting the application.

The application configuration is most of all xml beans configuration (and spring integration messaging configuration).
When starting and creating the beans, application always fails with the same NullPointerException.

Example 1 :

A simple jdbc initialize with two scripts like this :

    <jdbc:initialize-database data-source="userDataSource" enabled="true" ignore-failures="DROPS">
    	<jdbc:script location="classpath:/security/Clear.sql" />
    	<jdbc:script location="#{securityUsersSql}" />
    </jdbc:initialize-database>

Leads to this NPE :


    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.jdbc.datasource.init.DataSourceInitializer#0': Cannot create inner bean '(inner bean)#62794322' of type [org.springframework.jdbc.datasource.init.CompositeDatabasePopulator] while setting bean property 'databasePopulator'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#62794322': Cannot create inner bean '(inner bean)#6a35384f' of type [org.springframework.jdbc.datasource.init.ResourceDatabasePopulator] while setting bean property 'populators' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#6a35384f': Cannot create inner bean '(inner bean)#f5677960' of type [org.springframework.jdbc.config.SortedResourcesFactoryBean] while setting bean property 'scripts'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#f5677960': Unexpected exception during bean creation; nested exception is java.lang.NullPointerException
    	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:389)
    	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:134)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1691)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1436)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:608)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:531)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
    	at org.springframework.beans.factory.support.AbstractBeanFactory$$Lambda$237/000000000000000000.getObject(Unknown Source)
    	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944)
    	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:925)
    	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:588)
    	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:401)
    	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:292)
    	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103)
    	at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:930)
    	at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:553)
    	at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:889)
    	at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:356)
    	at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1445)
    	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1409)
    	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:822)
    	at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:275)
    	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524)
    	at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:550)
    	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
    	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
    	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
    	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:100)
    	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
    	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
    	at org.eclipse.jetty.server.Server.start(Server.java:407)
    	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
    	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:100)
    	at org.eclipse.jetty.server.Server.doStart(Server.java:371)
    	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
    	at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:760)
    	at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:636)
    	at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:898)
    	at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:705)
    	at com.google.gwt.dev.DevMode.main(DevMode.java:432)
    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#62794322': Cannot create inner bean '(inner bean)#6a35384f' of type [org.springframework.jdbc.datasource.init.ResourceDatabasePopulator] while setting bean property 'populators' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#6a35384f': Cannot create inner bean '(inner bean)#f5677960' of type [org.springframework.jdbc.config.SortedResourcesFactoryBean] while setting bean property 'scripts'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#f5677960': Unexpected exception during bean creation; nested exception is java.lang.NullPointerException
    	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:389)
    	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:134)
    	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:428)
    	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:173)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1691)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1436)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:608)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:531)
    	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:374)
    	... 42 more
    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#6a35384f': Cannot create inner bean '(inner bean)#f5677960' of type [org.springframework.jdbc.config.SortedResourcesFactoryBean] while setting bean property 'scripts'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#f5677960': Unexpected exception during bean creation; nested exception is java.lang.NullPointerException
    	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:389)
    	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:134)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1691)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1436)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:608)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:531)
    	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:374)
    	... 50 more
    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#f5677960': Unexpected exception during bean creation; nested exception is java.lang.NullPointerException
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:544)
    	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:374)
    	... 56 more
    Caused by: java.lang.NullPointerException
    	at java.base/java.lang.Class.isAssignableFrom(Native Method)
    	at org.springframework.beans.BeanUtils.findEditorByConvention(BeanUtils.java:566)
    	at org.springframework.beans.TypeConverterDelegate.findDefaultEditor(TypeConverterDelegate.java:337)
    	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:153)
    	at org.springframework.beans.TypeConverterSupport.convertIfNecessary(TypeConverterSupport.java:73)
    	at org.springframework.beans.TypeConverterSupport.convertIfNecessary(TypeConverterSupport.java:53)
    	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:759)
    	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:228)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1356)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1206)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:571)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:531)
    	... 57 more

If I comment this part out, to understand and see where it leads, it comes to the Spring Integration beans part.

Example 2 :

A simple logging-chanel-adapter is leading to the same NPE


    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:si="http://www.springframework.org/schema/integration"
    	xmlns:si-file="http://www.springframework.org/schema/integration/file"
    	xmlns:si-jpa="http://www.springframework.org/schema/integration/jpa"
    	xmlns:si-xml="http://www.springframework.org/schema/integration/xml"
    	xmlns:task="http://www.springframework.org/schema/task"
    	xmlns:util="http://www.springframework.org/schema/util"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans
    			http://www.springframework.org/schema/beans/spring-beans.xsd
    			http://www.springframework.org/schema/context
    			http://www.springframework.org/schema/context/spring-context.xsd
    			http://www.springframework.org/schema/integration
    			http://www.springframework.org/schema/integration/spring-integration.xsd
    			http://www.springframework.org/schema/integration/file
    			http://www.springframework.org/schema/integration/file/spring-integration-file.xsd
    			http://www.springframework.org/schema/integration/jpa
    			http://www.springframework.org/schema/integration/jpa/spring-integration-jpa.xsd
    			http://www.springframework.org/schema/integration/xml
    			http://www.springframework.org/schema/integration/xml/spring-integration-xml.xsd
    			http://www.springframework.org/schema/task
        			http://www.springframework.org/schema/task/spring-task.xsd
    			http://www.springframework.org/schema/util
    			http://www.springframework.org/schema/util/spring-util.xsd">
    
    	<import resource="classpath:/META-INF/spring/configurationContext.xml" />
    
        	<beans profile="dev,prod,import-plan">
    
    		<!--  log messages -->
    	    <si:wire-tap channel="pid-logger" pattern="pid-in,pid-endOfFlowChannel,pid-replyChannel"/>
    		<si:logging-channel-adapter id="pid-logger" log-full-message="true" level="INFO"/>
    
    	</beans>
    
    </beans>

Stack :


    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.integration.handler.LoggingHandler#0': Unexpected exception during bean creation; nested exception is java.lang.NullPointerException
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:544)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
    	at org.springframework.beans.factory.support.AbstractBeanFactory$$Lambda$237/000000000000000000.getObject(Unknown Source)
    	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944)
    	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:925)
    	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:588)
    	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:401)
    	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:292)
    	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103)
    	at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:930)
    	at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:553)
    	at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:889)
    	at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:356)
    	at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1445)
    	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1409)
    	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:822)
    	at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:275)
    	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524)
    	at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:550)
    	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
    	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
    	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
    	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:100)
    	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
    	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
    	at org.eclipse.jetty.server.Server.start(Server.java:407)
    	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
    	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:100)
    	at org.eclipse.jetty.server.Server.doStart(Server.java:371)
    	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
    	at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:760)
    	at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:636)
    	at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:898)
    	at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:705)
    	at com.google.gwt.dev.DevMode.main(DevMode.java:432)
    Caused by: java.lang.NullPointerException
    	at java.base/java.lang.Class.isAssignableFrom(Native Method)
    	at org.springframework.beans.BeanUtils.findEditorByConvention(BeanUtils.java:566)
    	at org.springframework.beans.TypeConverterDelegate.findDefaultEditor(TypeConverterDelegate.java:337)
    	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:153)
    	at org.springframework.beans.TypeConverterSupport.convertIfNecessary(TypeConverterSupport.java:73)
    	at org.springframework.beans.TypeConverterSupport.convertIfNecessary(TypeConverterSupport.java:53)
    	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:759)
    	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:228)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1356)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1206)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:571)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:531)
    	... 37 more

Example 3 :

Again if I comment it out, with an inbound-channel-adapter


    <beans profile="dev,prod,import-plan">
    
    		<!--  log messages -->
    <!-- 	    <si:wire-tap channel="pid-logger" pattern="pid-in,pid-endOfFlowChannel,pid-replyChannel"/> -->
    <!-- 		<si:logging-channel-adapter id="pid-logger" log-full-message="true" level="INFO"/> -->
    
    		<si:publish-subscribe-channel id="pid-errorChannel" />
    
    		<bean id="pid-alarm-publisher" class="com.cy.sylphe.planner.server.integration.plan.in.AlarmPublisher">
    			<constructor-arg ref="entityManager" />
    		</bean>
    
    	    	<!-- end of flow when exception are raised (move the import file to ./rejected) -->
    	    	<si:service-activator input-channel="pid-errorChannel">
    	        <bean class="com.cy.sylphe.planner.server.integration.plan.in.ExceptionHandler">
    				<constructor-arg ref="pid-alarm-publisher" />
    			</bean>
    	    	</si:service-activator>
    
    		<bean id="pid-finalizer" class="com.cy.sylphe.planner.server.integration.plan.in.Finalizer">
    			<property name="entityManager" ref="entityManager" />
    		</bean>
    
    		<!-- parse input directory, periodically -->
    		<si-file:inbound-channel-adapter id="pid-loadPlansChannel" directory="${plans-import-directory}"
    			filename-pattern="${plans-import-file-pattern}" prevent-duplicates="false">
    			<si:poller id="poller" fixed-rate="${plans-import-fixed-rate}" error-channel="pid-errorChannel">
                		<!-- use a time-out to stop the flow when the XML file cannot finish -->
    			<si:transactional propagation="REQUIRED" transaction-manager="transactionManager" timeout="2000"/>
    			</si:poller>
    		</si-file:inbound-channel-adapter>
    
    </beans>

Stack :


    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pid-loadPlansChannel.adapter.source': Initialization of bean failed; nested exception is java.lang.NullPointerException
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:617)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:531)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
    	at org.springframework.beans.factory.support.AbstractBeanFactory$$Lambda$237/000000000000000000.getObject(Unknown Source)
    	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:925)
    	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:925)
    	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:588)
    	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:401)
    	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:292)
    	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103)
    	at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:930)
    	at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:553)
    	at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:889)
    	at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:356)
    	at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1445)
    	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1409)
    	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:822)
    	at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:275)
    	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524)
    	at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:550)
    	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
    	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
    	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
    	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:100)
    	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
    	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
    	at org.eclipse.jetty.server.Server.start(Server.java:407)
    	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
    	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:100)
    	at org.eclipse.jetty.server.Server.doStart(Server.java:371)
    	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
    	at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:760)
    	at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:636)
    	at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:898)
    	at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:705)
    	at com.google.gwt.dev.DevMode.main(DevMode.java:432)
    Caused by: java.lang.NullPointerException
    	at java.base/java.lang.Class.isAssignableFrom(Native Method)
    	at org.springframework.beans.BeanUtils.findEditorByConvention(BeanUtils.java:566)
    	at org.springframework.beans.TypeConverterDelegate.findDefaultEditor(TypeConverterDelegate.java:337)
    	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:153)
    	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:98)
    	at org.springframework.beans.TypeConverterDelegate.convertToTypedArray(TypeConverterDelegate.java:455)
    	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:172)
    	at org.springframework.beans.AbstractNestablePropertyAccessor.convertIfNecessary(AbstractNestablePropertyAccessor.java:588)
    	at org.springframework.beans.AbstractNestablePropertyAccessor.convertForProperty(AbstractNestablePropertyAccessor.java:607)
    	at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:219)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1740)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1696)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1436)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:608)
    	... 38 more

All those examples were working well before migration. I can't see something common between those examples or something obvious that could lead to this same NPE each time (and there are many others if I keep going).
There is something I don't understand, I'm missing out on something.

Any idea ? Thanks for help

Metadata

Metadata

Assignees

Labels

in: coreIssues in core modules (aop, beans, core, context, expression)status: backportedAn issue that has been backported to maintenance branchestype: enhancementA general enhancement

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions