[ https://issues.apache.org/jira/browse/GROOVY-11524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17901230#comment-17901230 ]
Daniel Sun commented on GROOVY-11524: ------------------------------------- As the variable {{ignore}} means, the exception could be ignored, but we got a {{Error}}, so I changed the type {{Exception}} to {{Throwable}} to improve the robustness of the code. https://github.com/apache/groovy/blob/0b7445664bd9df285b178099345b1f5721a1da5b/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java#L109 > Error with circular loading of installed providers when using transitive > dependency groovy 4.0.23 in docker > ----------------------------------------------------------------------------------------------------------- > > Key: GROOVY-11524 > URL: https://issues.apache.org/jira/browse/GROOVY-11524 > Project: Groovy > Issue Type: Bug > Affects Versions: 4.0.23 > Reporter: Lennard Wolf > Priority: Major > > We faced an error when migrating spring-boot-starter-thymeleaf with version > 3.3.4, that did not occur in the previous 3.3.3 version. The difference in > both versions is the groovy version that is provided as transitive dependency > which was migrated from 4.0.22 to 4.0.23. When loading a template that uses > the layout decorate functionality, a {{Circular loading of installed > providers detected}} occurs, when the application runs inside an our docker > container. > We already contacted the Spring Boot support. Due to the workaround (see > below), they asked us to place the issue directly at groovy. > We are using the following versions: > * {*}Version of Thymeleaf{*}: spring-boot-starter-thymeleaf:3.3.4 (embedded > groovy version 4.0.23) > * {*}Environment{*}: Spring Boot 3.3.4 > * {*}Docker base image{*}: > public.ecr.aws/docker/library/amazoncorretto:21-alpine-jdk (we just copy the > JAR into the docker container and set an entry point) > The stack trace looks like the following: > *Stacktrace:* > {code:java} > java.lang.Error: Circular loading of installed providers detected > java.base/java.nio.file.spi.FileSystemProvider.installedProviders(FileSystemProvider.java: > 198) > java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java: 336) > java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java: 288) > org.codehaus.groovy.vmplugin.v9.ClassFinder.maybeNewFileSystem(ClassFinder.java: > 177) > org.codehaus.groovy.vmplugin.v9.ClassFinder.find(ClassFinder.java:122) > org.codehaus.groovy.vmplugin.v9.ClassFinder.find(ClassFinder.java: 109) > org.codehaus.groovy.vmplugin.v9.Java9.doFindClasses(Java9.java: 120) > org.codehaus.groovy.vmplugin.v9.Java9.getDefaultImportClasses(Java9.java: 107) > org.codehaus.groovy.control.ResolveVisitor.<clinit>(ResolveVisitor.java: 550) > org.codehaus.groovy.runtime.FormatHelper.<clinit>(FormatHelper.java: 71) > org.codehaus.groovy.runtime.InvokerHelper.matchRegex(InvokerHelper.java: 339) > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.matchRegex(ScriptBytecodeAdapter.java: > 895) > nz.net.ultraq.thymeleaf.expressionprocessor.ExpressionProcessor.parseFragmentExpression(ExpressionProcessor.groovy: > 73) > org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java: > 321) > nz.net.ultraq.thymeleaf.layoutdialect.decorators.DecorateProcessor.doProcess(DecorateProcessor.groovy:115) > org.thymeleaf.processor.element.AbstractAttributeModelProcessor.doProcess(AbstractAttributeModelProcessor.java: > 77) > org.thymeleaf.processor.element.AbstractElementModelProcessor.process(AbstractElementModelProcessor.java: > 98) > org.thymeleaf.util.ProcessorConfigurationUtils$ElementModelProcessorWrapper.process(ProcessorConfigurationUtils.java: > 649) > org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java: > 1510) > org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java: 205) > org.thymeleaf.engine.Model.process(Model.java: 282) > org.thymeleaf.engine.Model.process(Model.java: 290) > org.thymeleaf.engine.GatheringModelProcessable.process(GatheringModelProcessable.java: > 78) > org.thymeleaf.engine.ProcessorTemplateHandler.handleCloseElement(ProcessorTemplateHandler.java: > 1640) > org.thymeleaf.engine.CloseElementTag.beHandled(CloseElementTag.java:139) > org.thymeleaf.engine.TemplateModel.process(TemplateModel.java: 136) > org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java: > 661) > org.thymeleaf.TemplateEngine.process(TemplateEngine.java: 1103) > org.thymeleaf.TemplateEngine.process(TemplateEngine.java: 1064) > org.thymeleaf.TemplateEngine.process(TemplateEngine.java: 1053) > de.otto.core.WarmupService.warmupDetailsTemplate(WarmupService.kt: 266) > de.otto.core.WarmupService.warmupTemplates(WarmupService.kt: 68) > de.otto.core.WarmupService.warmup(WarmupService.kt: 62) > de.otto.core.WarmupService.warmup$default(WarmupService.kt: 60) > de.otto.core.WarmupService.run(WarmupService.kt:360) > org.springframework.boot.SpringApplication.lambda$callRunner$4(SpringApplication.java: > 786) > org.springframework.util.function.ThrowingConsumer$1.acceptWithException(ThrowingConsumer.java: > 83) > org.springframework.util.function.ThrowingConsumer.accept(ThrowingConsumer.java: > 60) > org.springframework.util.function.ThrowingConsumer$1.accept(ThrowingConsumer.java: > 88) > org.springframework.boot.SpringApplication.callRunner(SpringApplication.java: > 798) > org.springframework.boot.SpringApplication.callRunner(SpringApplication.java: > 786) > org.springframework.boot.SpringApplication.lambda$callRunners$3(SpringApplication.java: > 774) > java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java: > 184) > java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java: > 357) > java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510) > java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java: > 499) > java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java: > 151) > java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java: > 174) > java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java: > 234) > java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java: > 596) > org.springframework.boot.SpringApplication.callRunners(SpringApplication.java: > 774) > org.springframework.boot.SpringApplication.run(SpringApplication.java: 342) > org.springframework.boot.SpringApplication.run(SpringApplication.java: 1363) > org.springframework.boot.SpringApplication.run(SpringApplication.java: 1352) > de.otto.ApplicationKt.main(Application.kt:36){{}} {code} > {*}Workaround{*}: > We have found that when we are pinning the groovy version that is delivered > within the thymeleaf library to version 4.0.22 instead of using version > 4.0.23 that was delivered with the new 3.3.4 version of thymeleaf spring boot > starter, the error does not occur anymore. That works for the moment, of > course for further releases this could raise other isssues. > We would be very thankful, if you could help us to fix the issue. -- This message was sent by Atlassian Jira (v8.20.10#820010)