apache / dubbo-spring-boot-project

Spring Boot Project for Apache Dubbo
https://dubbo.apache.org
Apache License 2.0
5.41k stars 1.88k forks source link

UT failure on Java 9 #128

Closed ralf0131 closed 6 years ago

ralf0131 commented 6 years ago

Running mvn clean package -X under Java 9 will get the following error:

import: Entry[import  from realm ClassRealm[maven.api, parent: null]]

-----------------------------------------------------

        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:181)
        ... 21 more
Caused by: java.lang.ExceptionInInitializerError
        at org.apache.maven.plugins.enforcer.RequireJavaVersion.execute(RequireJavaVersion.java:52)
        at org.apache.maven.plugins.enforcer.EnforceMojo.execute(EnforceMojo.java:186)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        ... 21 more
Caused by: java.lang.StringIndexOutOfBoundsException: begin 0, end 3, length 1
        at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3116)
        at java.base/java.lang.String.substring(String.java:1885)
        at org.apache.commons.lang.SystemUtils.getJavaVersionAsFloat(SystemUtils.java:1122)
        at org.apache.commons.lang.SystemUtils.<clinit>(SystemUtils.java:818)
        ... 24 more
ralf0131 commented 6 years ago

Update maven-enforce-plugin to

                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>3.0.0-M1</version>

Will solve this.

ralf0131 commented 6 years ago

However, if we continue to run the UT, new failures will occur:

Tests in error:
  testResolveStatusCheckerNamesMap(com.alibaba.boot.dubbo.actuate.health.DubboHealthIndicatorTest): Failed to load ApplicationContext
  testHealth(com.alibaba.boot.dubbo.actuate.health.DubboHealthIndicatorTest): Failed to load ApplicationContext
  testProperties(com.alibaba.boot.dubbo.actuate.endpoint.mvc.DubboMvcEndpointTest): Failed to load ApplicationContext
  testShutdown(com.alibaba.boot.dubbo.actuate.endpoint.mvc.DubboMvcEndpointTest): Failed to load ApplicationContext
  testConfigs(com.alibaba.boot.dubbo.actuate.endpoint.mvc.DubboMvcEndpointTest): Failed to load ApplicationContext
  testReferences(com.alibaba.boot.dubbo.actuate.endpoint.mvc.DubboMvcEndpointTest): Failed to load ApplicationContext
  testServices(com.alibaba.boot.dubbo.actuate.endpoint.mvc.DubboMvcEndpointTest): Failed to load ApplicationContext

Detailed exception:

Caused by: javax.validation.ValidationException: Unable to instantiate Configuration.
        at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:279)
        at org.springframework.validation.beanvalidation.LocalValidatorFactoryBean.afterPropertiesSet(LocalValidatorFactoryBean.java:223)
        at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor$Jsr303ValidatorFactory.run(ConfigurationPropertiesBindingPostProcessor.java:401)
        at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.afterPropertiesSet(ConfigurationPropertiesBindingPostProcessor.java:199)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
        ... 46 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
        at org.hibernate.validator.internal.util.Version.getJavaRelease(Version.java:36)
        at org.hibernate.validator.internal.engine.ConfigurationImpl.<init>(ConfigurationImpl.java:120)
        at org.hibernate.validator.internal.engine.ConfigurationImpl.<init>(ConfigurationImpl.java:96)
        at org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:31)
        at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:276)
        ... 51 more

A mvn dependency:tree shows that org.hibernate:hibernate-validator:jar:5.2.2.Final is introduced by org.springframework.boot:spring-boot-starter-web:jar:1.3.0.RELEASE, we need to upgrade the spring boot version in order to make the UT pass under Java 9.