sample.zip I hit the following error this morning when I updated from Spring Boot 2.4.0-M3 to 2.4.0-M4:

java.lang.VerifyError: Cannot inherit from final class
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
        at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:550)
        at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458)
        at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
        at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:398)
        at java.base/sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114)
        at java.base/sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125)
        at java.base/sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
        at java.base/sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68)
        at java.base/sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138)
        at java.base/sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
        at java.base/sun.reflect.generics.repository.ClassRepository.computeSuperInterfaces(ClassRepository.java:117)
        at java.base/sun.reflect.generics.repository.ClassRepository.getSuperInterfaces(ClassRepository.java:95)
        at java.base/java.lang.Class.getGenericInterfaces(Class.java:1137)
        at org.springframework.core.ResolvableType.getInterfaces(ResolvableType.java:502)
        at org.springframework.core.ResolvableType.as(ResolvableType.java:450)
        at org.springframework.boot.context.config.ConfigDataLoaders.getResourceType(ConfigDataLoaders.java:88)
        at org.springframework.boot.context.config.ConfigDataLoaders.getResourceTypes(ConfigDataLoaders.java:82)
        at org.springframework.boot.context.config.ConfigDataLoaders.<init>(ConfigDataLoaders.java:76)
        at org.springframework.boot.context.config.ConfigDataLoaders.<init>(ConfigDataLoaders.java:56)
        at org.springframework.boot.context.config.ConfigDataEnvironment.<init>(ConfigDataEnvironment.java:146)
        at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.getConfigDataEnvironment(ConfigDataEnvironmentPostProcessor.java:99)
        at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.postProcessEnvironment(ConfigDataEnvironmentPostProcessor.java:88)
        at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.postProcessEnvironment(ConfigDataEnvironmentPostProcessor.java:80)
        at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEnvironmentPreparedEvent(EnvironmentPostProcessorApplicationListener.java:100)
        at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEvent(EnvironmentPostProcessorApplicationListener.java:86)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:203)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:196)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:170)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:148)
        at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:82)
        at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:63)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
        at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:117)
        at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:111)
        at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:62)
        at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:362)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1309)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1298)
        at sample.SampleApplication.main(SampleApplication.java:10)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:107)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)

I reduced the scenario down to what I think is the most simplest form. It is a combination of Spring Boot 2.4.0-M4 and Spring Cloud 2020.0.0-M4 (in particular the use of org.springframework.cloud:spring-cloud-starter-config). The oddity here is following results: - Spring Boot 2.4.0-M3 + Spring Cloud 2020.0.0-M3 (WORKS) - Spring Boot 2.4.0-M3 + Spring Cloud 2020.0.0-M4 (WORKS) - Spring Boot 2.4.0-M4 + Spring Cloud 2020.0.0-M3 (WORKS) - Spring Boot 2.4.0-M4 + Spring Cloud 2020.0.0-M4 (BROKEN)

So both Spring Boot 2.4.0-M4 and Spring Cloud 2020.0.0-M4 work if combined if older versions of the other but not if used together. Unsure if this is a Spring Boot issue or a Spring Cloud Config issue. Attaching my stripped down sample application that demonstrates the problem.

Comment From: spencergibb

Spring boot made some breaking api changes and there is not a compatible release of Spring Cloud yet. You'll need to use snapshots of Spring Cloud

Comment From: chrismathews

Thanks @spencergibb, I'll wait for Spring Cloud 2020.0.0-M5 in that case (hard to work with snapshots behind the corporate proxies).

Comment From: spencergibb

Milestones and snapshots come from the same artifactory instance

Comment From: chrismathews

Understood, it is a nuance of how we allow use of external artifact repository. Versions are pulled in explicitly and snapshots aren't permitted. But no big deal to wait a few weeks, I will do a quick test on my home machine but since this is already a known scenario I don't expect to hit any problems.

Comment From: snicoll

Thanks @spencergibb. I've adapted the range that start.spring.io uses to avoid serving Spring Cloud 2020.0.0-M4 with the latest Spring Boot milestone. I am going to close this now as there's nothing we can do here.