spring-cloud-contract
spring-cloud-contract copied to clipboard
Spring cloud contract version 2021.0.3 throwing org.jetbrains.kotlin.backend.common.BackendException
Describe the bug
Spring cloud contract version 2021.0.3
causes the following error when running contract tests
javax.script.ScriptException: org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during file facade code generation File being compiled: mock:///Line_0.kts
Our project ran consumer tests via spring cloud stub runner but as soon as we added and configured spring cloud contract verifier for producer test(s), the build started to fail.
2022-06-03 16:36:44.388 INFO 15213 --- [ main] o.s.c.c.stubrunner.AetherStubDownloader : Unpacked file to [/tmp/contracts-1654238204380-0]
2022-06-03 16:36:44.755 WARN 15213 --- [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'batchStubRunnerBeanPostProcessor' defined in class path resource [org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.class]: Unsatisfied dependency expressed through method 'batchStubRunnerBeanPostProcessor' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'batchStubRunner' defined in class path resource [org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.contract.stubrunner.BatchStubRunner]: Factory method 'batchStubRunner' threw exception; nested exception is javax.script.ScriptException: org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during file facade code generation
File being compiled: mock:///Line_0.kts
The root cause java.lang.AbstractMethodError was thrown at: org.jetbrains.kotlin.codegen.context.ScriptContext.<init>(ScriptContext.kt:70)
2022-06-03 16:36:44.756 INFO 15213 --- [ main] ConditionEvaluationReportLoggingListener :
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2022-06-03 16:36:44.760 ERROR 15213 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'batchStubRunnerBeanPostProcessor' defined in class path resource [org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.class]: Unsatisfied dependency expressed through method 'batchStubRunnerBeanPostProcessor' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'batchStubRunner' defined in class path resource [org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.contract.stubrunner.BatchStubRunner]: Factory method 'batchStubRunner' threw exception; nested exception is javax.script.ScriptException: org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during file facade code generation
File being compiled: mock:///Line_0.kts
The root cause java.lang.AbstractMethodError was thrown at: org.jetbrains.kotlin.codegen.context.ScriptContext.<init>(ScriptContext.kt:70)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:213) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:270) ~[spring-context-5.3.20.jar:5.3.20]
at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:762) ~[spring-context-5.3.20.jar:5.3.20]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:567) ~[spring-context-5.3.20.jar:5.3.20]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) ~[spring-boot-2.7.0.jar:2.7.0]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.0.jar:2.7.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) ~[spring-boot-2.7.0.jar:2.7.0]
at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:132) ~[spring-boot-test-2.7.0.jar:2.7.0]
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) ~[spring-test-5.3.20.jar:5.3.20]
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) ~[spring-test-5.3.20.jar:5.3.20]
at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) ~[spring-test-5.3.20.jar:5.3.20]
at org.springframework.cloud.contract.wiremock.WireMockTestExecutionListener.applicationContextBroken(WireMockTestExecutionListener.java:120) ~[spring-cloud-contract-wiremock-3.1.3.jar:3.1.3]
at org.springframework.cloud.contract.wiremock.WireMockTestExecutionListener.afterTestClass(WireMockTestExecutionListener.java:58) ~[spring-cloud-contract-wiremock-3.1.3.jar:3.1.3]
at org.springframework.test.context.TestContextManager.afterTestClass(TestContextManager.java:492) ~[spring-test-5.3.20.jar:5.3.20]
at org.springframework.test.context.junit.jupiter.SpringExtension.afterAll(SpringExtension.java:122) ~[spring-test-5.3.20.jar:5.3.20]
at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeAfterAllCallbacks$16(ClassBasedTestDescriptor.java:447) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeAfterAllCallbacks$17(ClassBasedTestDescriptor.java:447) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) ~[na:na]
at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeAfterAllCallbacks(ClassBasedTestDescriptor.java:447) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.after(ClassBasedTestDescriptor.java:229) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.after(ClassBasedTestDescriptor.java:80) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:161) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:161) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) ~[na:na]
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) ~[junit-platform-engine-1.8.2.jar:1.8.2]
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:220) ~[junit-platform-launcher-1.3.1.jar:1.3.1]
at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:188) ~[junit-platform-launcher-1.3.1.jar:1.3.1]
at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:202) ~[junit-platform-launcher-1.3.1.jar:1.3.1]
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:181) ~[junit-platform-launcher-1.3.1.jar:1.3.1]
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128) ~[junit-platform-launcher-1.3.1.jar:1.3.1]
at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:150) ~[surefire-junit-platform-2.22.2.jar:2.22.2]
at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124) ~[surefire-junit-platform-2.22.2.jar:2.22.2]
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384) ~[surefire-booter-2.22.2.jar:2.22.2]
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345) ~[surefire-booter-2.22.2.jar:2.22.2]
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126) ~[surefire-booter-2.22.2.jar:2.22.2]
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418) ~[surefire-booter-2.22.2.jar:2.22.2]
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'batchStubRunner' defined in class path resource [org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.contract.stubrunner.BatchStubRunner]: Factory method 'batchStubRunner' threw exception; nested exception is javax.script.ScriptException: org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during file facade code generation
File being compiled: mock:///Line_0.kts
The root cause java.lang.AbstractMethodError was thrown at: org.jetbrains.kotlin.codegen.context.ScriptContext.<init>(ScriptContext.kt:70)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1389) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1309) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[spring-beans-5.3.20.jar:5.3.20]
... 62 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.contract.stubrunner.BatchStubRunner]: Factory method 'batchStubRunner' threw exception; nested exception is javax.script.ScriptException: org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during file facade code generation
File being compiled: mock:///Line_0.kts
The root cause java.lang.AbstractMethodError was thrown at: org.jetbrains.kotlin.codegen.context.ScriptContext.<init>(ScriptContext.kt:70)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.3.20.jar:5.3.20]
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-5.3.20.jar:5.3.20]
... 76 common frames omitted
Caused by: javax.script.ScriptException: org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during file facade code generation
File being compiled: mock:///Line_0.kts
The root cause java.lang.AbstractMethodError was thrown at: org.jetbrains.kotlin.codegen.context.ScriptContext.<init>(ScriptContext.kt:70)
at org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineBase.asJsr223EvalResult(KotlinJsr223JvmScriptEngineBase.kt:92) ~[kotlin-compiler-embeddable-1.6.21.jar:1.6.21-release-334(1.6.21)]
at org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineBase.compileAndEval(KotlinJsr223JvmScriptEngineBase.kt:63) ~[kotlin-compiler-embeddable-1.6.21.jar:1.6.21-release-334(1.6.21)]
at org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineBase.eval(KotlinJsr223JvmScriptEngineBase.kt:33) ~[kotlin-compiler-embeddable-1.6.21.jar:1.6.21-release-334(1.6.21)]
at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249) ~[java.scripting:na]
at org.springframework.cloud.contract.spec.internal.KotlinContractConverter$convertFrom$eval$1.invoke(KotlinContractConverter.kt:52) ~[spring-cloud-contract-spec-kotlin-3.1.3.jar:3.1.3]
at org.springframework.cloud.contract.spec.internal.KotlinContractConverter$convertFrom$eval$1.invoke(KotlinContractConverter.kt:48) ~[spring-cloud-contract-spec-kotlin-3.1.3.jar:3.1.3]
at org.springframework.cloud.contract.spec.internal.KotlinContractConverter.withUpdatedClassloader(KotlinContractConverter.kt:88) ~[spring-cloud-contract-spec-kotlin-3.1.3.jar:3.1.3]
at org.springframework.cloud.contract.spec.internal.KotlinContractConverter.convertFrom(KotlinContractConverter.kt:48) ~[spring-cloud-contract-spec-kotlin-3.1.3.jar:3.1.3]
at org.springframework.cloud.contract.verifier.util.ContractScanner.doCollectContractDescriptors(ContractScanner.java:86) ~[spring-cloud-contract-verifier-3.1.3.jar:3.1.3]
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[na:na]
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) ~[na:na]
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) ~[na:na]
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[na:na]
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[na:na]
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133) ~[na:na]
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[na:na]
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) ~[na:na]
at org.springframework.cloud.contract.verifier.util.ContractScanner.collectContractDescriptors(ContractScanner.java:72) ~[spring-cloud-contract-verifier-3.1.3.jar:3.1.3]
at org.springframework.cloud.contract.stubrunner.StubRepository.contractDescriptors(StubRepository.java:153) ~[spring-cloud-contract-stub-runner-3.1.3.jar:3.1.3]
at org.springframework.cloud.contract.stubrunner.StubRepository.contracts(StubRepository.java:98) ~[spring-cloud-contract-stub-runner-3.1.3.jar:3.1.3]
at org.springframework.cloud.contract.stubrunner.StubRepository.<init>(StubRepository.java:72) ~[spring-cloud-contract-stub-runner-3.1.3.jar:3.1.3]
at org.springframework.cloud.contract.stubrunner.StubRunner.<init>(StubRunner.java:67) ~[spring-cloud-contract-stub-runner-3.1.3.jar:3.1.3]
at org.springframework.cloud.contract.stubrunner.StubRunnerFactory.createStubRunner(StubRunnerFactory.java:181) ~[spring-cloud-contract-stub-runner-3.1.3.jar:3.1.3]
at org.springframework.cloud.contract.stubrunner.StubRunnerFactory.createStubRunner(StubRunnerFactory.java:176) ~[spring-cloud-contract-stub-runner-3.1.3.jar:3.1.3]
at org.springframework.cloud.contract.stubrunner.StubRunnerFactory.createStubsFromServiceConfiguration(StubRunnerFactory.java:90) ~[spring-cloud-contract-stub-runner-3.1.3.jar:3.1.3]
at org.springframework.cloud.contract.stubrunner.BatchStubRunnerFactory.buildBatchStubRunner(BatchStubRunnerFactory.java:64) ~[spring-cloud-contract-stub-runner-3.1.3.jar:3.1.3]
at org.springframework.cloud.contract.stubrunner.spring.StubRunnerConfiguration.batchStubRunner(StubRunnerConfiguration.java:85) ~[spring-cloud-contract-stub-runner-3.1.3.jar:3.1.3]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.20.jar:5.3.20]
... 77 common frames omitted
Caused by: org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during file facade code generation
File being compiled: mock:///Line_0.kts
The root cause java.lang.AbstractMethodError was thrown at: org.jetbrains.kotlin.codegen.context.ScriptContext.<init>(ScriptContext.kt:70)
at org.jetbrains.kotlin.backend.common.CodegenUtil.reportBackendException(CodegenUtil.kt:238) ~[kotlin-compiler-embeddable-1.6.21.jar:1.6.21-release-334(1.6.21)]
at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generate(PackageCodegenImpl.java:78) ~[kotlin-compiler-embeddable-1.6.21.jar:1.6.21-release-334(1.6.21)]
at org.jetbrains.kotlin.codegen.DefaultCodegenFactory.generatePackage(CodegenFactory.kt:140) ~[kotlin-compiler-embeddable-1.6.21.jar:1.6.21-release-334(1.6.21)]
at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.generatePackage(KotlinCodegenFacade.java:47) ~[kotlin-compiler-embeddable-1.6.21.jar:1.6.21-release-334(1.6.21)]
at org.jetbrains.kotlin.scripting.compiler.plugin.repl.GenericReplCompiler.compile(GenericReplCompiler.kt:105) ~[kotlin-scripting-compiler-embeddable-1.5.20.jar:1.5.20-release-287 (1.5.20)]
at org.jetbrains.kotlin.cli.common.repl.GenericReplCompilingEvaluatorBase.compileAndEval(GenericReplCompilingEvaluator.kt:38) ~[kotlin-compiler-embeddable-1.6.21.jar:1.6.21-release-334(1.6.21)]
at org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineBase$compileAndEval$1.invoke(KotlinJsr223JvmScriptEngineBase.kt:64) ~[kotlin-compiler-embeddable-1.6.21.jar:1.6.21-release-334(1.6.21)]
at org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineBase$compileAndEval$1.invoke(KotlinJsr223JvmScriptEngineBase.kt:63) ~[kotlin-compiler-embeddable-1.6.21.jar:1.6.21-release-334(1.6.21)]
at org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineBase.asJsr223EvalResult(KotlinJsr223JvmScriptEngineBase.kt:90) ~[kotlin-compiler-embeddable-1.6.21.jar:1.6.21-release-334(1.6.21)]
... 112 common frames omitted
Caused by: java.lang.AbstractMethodError: Receiver class org.jetbrains.kotlin.scripting.resolve.LazyScriptDescriptor does not define or inherit an implementation of the resolved method 'abstract org.jetbrains.kotlin.descriptors.ValueParameterDescriptor getEarlierScriptsConstructorParameter()' of interface org.jetbrains.kotlin.descriptors.ScriptDescriptor.
at org.jetbrains.kotlin.codegen.context.ScriptContext.<init>(ScriptContext.kt:70) ~[kotlin-compiler-embeddable-1.6.21.jar:1.6.21-release-334(1.6.21)]
at org.jetbrains.kotlin.codegen.context.CodegenContext.intoScript(CodegenContext.java:326) ~[kotlin-compiler-embeddable-1.6.21.jar:1.6.21-release-334(1.6.21)]
at org.jetbrains.kotlin.codegen.ScriptCodegen$Companion.createScriptCodegen(ScriptCodegen.kt:282) ~[kotlin-compiler-embeddable-1.6.21.jar:1.6.21-release-334(1.6.21)]
at org.jetbrains.kotlin.codegen.ScriptCodegen.createScriptCodegen(ScriptCodegen.kt) ~[kotlin-compiler-embeddable-1.6.21.jar:1.6.21-release-334(1.6.21)]
at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generateClassesAndObjectsInFile(PackageCodegenImpl.java:111) ~[kotlin-compiler-embeddable-1.6.21.jar:1.6.21-release-334(1.6.21)]
at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generateFile(PackageCodegenImpl.java:138) ~[kotlin-compiler-embeddable-1.6.21.jar:1.6.21-release-334(1.6.21)]
at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generate(PackageCodegenImpl.java:70) ~[kotlin-compiler-embeddable-1.6.21.jar:1.6.21-release-334(1.6.21)]
... 119 common frames omitted
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 16.464 s <<< FAILURE! - in org.au.nha.contracts.consumer.EnrolmentServiceConsumerTest
[ERROR] Should get tajweed enrolment by id Time elapsed: 0.002 s <<< ERROR!
org.junit.jupiter.api.extension.ParameterResolutionException: Failed to resolve parameter [org.au.nha.client.EnrolmentServiceClient enrolmentServiceClient] in constructor [public org.au.nha.contracts.consumer.EnrolmentServiceConsumerTest(org.au.nha.client.EnrolmentServiceClient)]: Failed to load ApplicationContext
Caused by: java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'batchStubRunnerBeanPostProcessor' defined in class path resource [org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.class]: Unsatisfied dependency expressed through method 'batchStubRunnerBeanPostProcessor' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'batchStubRunner' defined in class path resource [org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.contract.stubrunner.BatchStubRunner]: Factory method 'batchStubRunner' threw exception; nested exception is javax.script.ScriptException: org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during file facade code generation
File being compiled: mock:///Line_0.kts
The root cause java.lang.AbstractMethodError was thrown at: org.jetbrains.kotlin.codegen.context.ScriptContext.<init>(ScriptContext.kt:70)
Caused by: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'batchStubRunner' defined in class path resource [org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.contract.stubrunner.BatchStubRunner]: Factory method 'batchStubRunner' threw exception; nested exception is javax.script.ScriptException: org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during file facade code generation
File being compiled: mock:///Line_0.kts
The root cause java.lang.AbstractMethodError was thrown at: org.jetbrains.kotlin.codegen.context.ScriptContext.<init>(ScriptContext.kt:70)
Caused by: org.springframework.beans.BeanInstantiationException:
Failed to instantiate [org.springframework.cloud.contract.stubrunner.BatchStubRunner]: Factory method 'batchStubRunner' threw exception; nested exception is javax.script.ScriptException: org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during file facade code generation
File being compiled: mock:///Line_0.kts
The root cause java.lang.AbstractMethodError was thrown at: org.jetbrains.kotlin.codegen.context.ScriptContext.<init>(ScriptContext.kt:70)
Caused by: javax.script.ScriptException:
org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during file facade code generation
File being compiled: mock:///Line_0.kts
The root cause java.lang.AbstractMethodError was thrown at: org.jetbrains.kotlin.codegen.context.ScriptContext.<init>(ScriptContext.kt:70)
Caused by: org.jetbrains.kotlin.backend.common.BackendException:
Backend Internal error: Exception during file facade code generation
File being compiled: mock:///Line_0.kts
The root cause java.lang.AbstractMethodError was thrown at: org.jetbrains.kotlin.codegen.context.ScriptContext.<init>(ScriptContext.kt:70)
Caused by: java.lang.AbstractMethodError: Receiver class org.jetbrains.kotlin.scripting.resolve.LazyScriptDescriptor does not define or inherit an implementation of the resolved method 'abstract org.jetbrains.kotlin.descriptors.ValueParameterDescriptor getEarlierScriptsConstructorParameter()' of interface org.jetbrains.kotlin.descriptors.ScriptDescriptor.
The main culprit is kotlin-scripting-compiler-embeddable
version 1.5.20
. Maven depdency tree below
mvn dependency:tree | grep "kotlin" ──(Fri,Jun03)─┘
[INFO] +- com.fasterxml.jackson.module:jackson-module-kotlin:jar:2.13.3:compile
[INFO] +- org.jetbrains.kotlin:kotlin-reflect:jar:1.6.21:compile
[INFO] | \- org.jetbrains.kotlin:kotlin-stdlib:jar:1.6.21:compile
[INFO] | +- org.jetbrains.kotlin:kotlin-stdlib-common:jar:1.6.21:compile
[INFO] +- org.jetbrains.kotlin:kotlin-stdlib-jdk8:jar:1.6.21:compile
[INFO] | \- org.jetbrains.kotlin:kotlin-stdlib-jdk7:jar:1.6.21:compile
[INFO] +- org.springframework.cloud:spring-cloud-contract-spec-kotlin:jar:3.1.3:test
[INFO] | +- org.jetbrains.kotlin:kotlin-compiler-embeddable:jar:1.6.21:test
[INFO] | | +- org.jetbrains.kotlin:kotlin-script-runtime:jar:1.6.21:test
[INFO] | | +- org.jetbrains.kotlin:kotlin-daemon-embeddable:jar:1.6.21:test
[INFO] | +- org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:jar:1.5.20:test
[INFO] | | \- org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:jar:1.5.20:test
[INFO] | | +- org.jetbrains.kotlin:kotlin-scripting-common:jar:1.6.21:test
[INFO] | | \- org.jetbrains.kotlinx:kotlinx-coroutines-core:jar:1.6.1:test
[INFO] | \- org.jetbrains.kotlin:kotlin-script-util:jar:1.6.21:test
[INFO] | +- org.jetbrains.kotlin:kotlin-scripting-jvm:jar:1.6.21:test
[INFO] | \- org.jetbrains.kotlin:kotlin-daemon-client:jar:1.6.21:test
[INFO] | \- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:jar:1.6.1:test
Possible workarounds:
- Downgrade Kotlin to version
1.6.10
- Exclude
kotlin-scripting-compiler-embeddable
fromspring-cloud-contract-spec-kotlin
and adding the following maven dependency snippet
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-spec-kotlin</artifactId>
<exclusions>
<exclusion>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-scripting-compiler-embeddable</artifactId>
</exclusion>
</exclusions>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-scripting-compiler-embeddable</artifactId>
<version>1.6.21</version>
</dependency>