spring-cloud-contract icon indicating copy to clipboard operation
spring-cloud-contract copied to clipboard

Spring cloud contract version 2021.0.3 throwing org.jetbrains.kotlin.backend.common.BackendException

Open hjaved-nha opened this issue 2 years ago • 0 comments

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 from spring-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>

hjaved-nha avatar Jun 03 '22 08:06 hjaved-nha