Hi Rich, I suggest you create an issue in our Jira. It is hard to tell from that stacktrace whether it is a Groovy or OSGi issue, but we'd like to understand in either case.
The tricky aspect will be for us to reproduce your issue locally. Do you think creating a simple hello world application to replicate what you have is feasible? Cheers, Paul. On Mon, Mar 10, 2025 at 6:00 PM Richard Harker <richard.har...@cytal.co.uk> wrote: > > Hi All. > > > > We develop an OSGI Eclipse E4 based application which is written in a > combination of Java and Groovy. The application makes use of Groovy templates > dynamically loaded at runtime (to facilitate providing HTML reports) and > provides provision for the user to provide Groovy scripts which are parsed > and run by a GroovyShell at runtime. > > > > For some time now we’ve been seeing issues with intermittent stack overflow > exceptions and intermittent hangs - both when the application loads the > Groovy templates and when the application compiles the Groovy scripts. > > > > The stack overflow exceptions appear to be originating from Groovy and given > the hangs appear to occur interchangeably for the stack overflow exceptions, > our suspicion is that the hangs are potentially a different manifestation of > the same underlying issue. > > > > We’ve been using Groovy for some years, and when we were on Groovy 2.5.x did > not see these issues at all. We see them on both Groovy 3.x and on 4.x, with > them seemingly being more frequent on Groovy 4.x. > > > > Has anyone else seen these types of issues? I’ve included two example stack > traces below. I’ve truncated each stack trace in the middle of the repeating > lines, so the email is not huge. > > > > > > > > Example stack trace 1 – from when we saw the Stack Overflow Exception with > latest Groovy (4.0.26), when the Groovy Shell parses a Groovy script. > > > > !ENTRY com.protocrawler.jstdlib.core 4 0 2025-03-04 09:17:15.877 > > !MESSAGE FrameworkEvent ERROR > > !STACK 0 > > java.lang.StackOverflowError > > at java.base/java.lang.String.startsWith(String.java:2327) > > at > java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:97) > > at > java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77) > > at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92) > > at > java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:231) > > at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1445) > > at > java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:724) > > at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:251) > > at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:180) > > at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:194) > > at > org.eclipse.osgi.framework.util.SecureAction.getZipFile(SecureAction.java:353) > > at > org.eclipse.osgi.storage.bundlefile.ZipBundleFile.doOpen(ZipBundleFile.java:51) > > at > org.eclipse.osgi.storage.bundlefile.CloseableBundleFile.internalOpen(CloseableBundleFile.java:146) > > at > org.eclipse.osgi.storage.bundlefile.CloseableBundleFile.lockOpen(CloseableBundleFile.java:83) > > at > org.eclipse.osgi.storage.bundlefile.CloseableBundleFile.getEntry(CloseableBundleFile.java:285) > > at > org.eclipse.osgi.storage.bundlefile.BundleFile.getResourceURL(BundleFile.java:147) > > at > org.eclipse.osgi.internal.loader.classpath.ClasspathEntry.findResource(ClasspathEntry.java:228) > > at > org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalResourceImpl(ClasspathManager.java:462) > > at > org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalResourceImpl(ClasspathManager.java:441) > > at > org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalResource(ClasspathManager.java:412) > > at > org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalResource(ModuleClassLoader.java:340) > > at > org.eclipse.osgi.internal.loader.BundleLoader.findLocalResource(BundleLoader.java:952) > > at > org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.getResource(SingleSourcePackage.java:46) > > at > org.eclipse.osgi.internal.loader.BundleLoader.findResource(BundleLoader.java:710) > > at > org.eclipse.osgi.internal.loader.ModuleClassLoader.getResource(ModuleClassLoader.java:212) > > at java.base/java.lang.ClassLoader.getResource(ClassLoader.java:1413) > > at > org.codehaus.groovy.control.ClassNodeResolver.findDecompiled(ClassNodeResolver.java:252) > > at > org.codehaus.groovy.control.ClassNodeResolver.tryAsLoaderClassOrScript(ClassNodeResolver.java:193) > > at > org.codehaus.groovy.control.ClassNodeResolver.findClassNode(ClassNodeResolver.java:175) > > at > org.codehaus.groovy.control.ClassNodeResolver.resolveName(ClassNodeResolver.java:129) > > at > org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClassNullable(AsmReferenceResolver.java:57) > > at > org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClass(AsmReferenceResolver.java:44) > > at > org.codehaus.groovy.ast.decompiled.TypeSignatureParser.visitEnd(TypeSignatureParser.java:113) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:206) > > at > groovyjarjarasm.asm.signature.SignatureReader.accept(SignatureReader.java:124) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.parseClassSignature(ClassSignatureParser.java:111) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.configureClass(ClassSignatureParser.java:35) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitSupers(DecompiledClassNode.java:189) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getGenericsTypes(DecompiledClassNode.java:148) > > at > org.codehaus.groovy.ast.decompiled.TypeSignatureParser.visitEnd(TypeSignatureParser.java:125) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:206) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:240) > > at > groovyjarjarasm.asm.signature.SignatureReader.accept(SignatureReader.java:124) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.parseClassSignature(ClassSignatureParser.java:111) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.configureClass(ClassSignatureParser.java:35) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitSupers(DecompiledClassNode.java:189) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getGenericsTypes(DecompiledClassNode.java:148) > > at > org.codehaus.groovy.ast.decompiled.TypeSignatureParser.visitEnd(TypeSignatureParser.java:125) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:206) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:240) > > at > groovyjarjarasm.asm.signature.SignatureReader.accept(SignatureReader.java:124) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.parseClassSignature(ClassSignatureParser.java:111) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.configureClass(ClassSignatureParser.java:35) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitSupers(DecompiledClassNode.java:189) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getGenericsTypes(DecompiledClassNode.java:148) > > at > org.codehaus.groovy.ast.decompiled.TypeSignatureParser.visitEnd(TypeSignatureParser.java:125) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:206) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:240) > > at > groovyjarjarasm.asm.signature.SignatureReader.accept(SignatureReader.java:124) > > > > <<removed ~900 lines to make the email shorter>> > > > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.parseClassSignature(ClassSignatureParser.java:111) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.configureClass(ClassSignatureParser.java:35) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitSupers(DecompiledClassNode.java:189) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getGenericsTypes(DecompiledClassNode.java:148) > > at > org.codehaus.groovy.ast.decompiled.TypeSignatureParser.visitEnd(TypeSignatureParser.java:125) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:206) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:240) > > at > groovyjarjarasm.asm.signature.SignatureReader.accept(SignatureReader.java:124) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.parseClassSignature(ClassSignatureParser.java:111) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.configureClass(ClassSignatureParser.java:35) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitSupers(DecompiledClassNode.java:189) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getGenericsTypes(DecompiledClassNode.java:148) > > at > org.codehaus.groovy.ast.decompiled.TypeSignatureParser.visitEnd(TypeSignatureParser.java:125) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:206) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:240) > > at > groovyjarjarasm.asm.signature.SignatureReader.accept(SignatureReader.java:124) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.parseClassSignature(ClassSignatureParser.java:111) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.configureClass(ClassSignatureParser.java:35) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitSupers(DecompiledClassNode.java:189) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getGenericsTypes(DecompiledClassNode.java:148) > > at > org.codehaus.groovy.ast.decompiled.TypeSignatureParser.visitEnd(TypeSignatureParser.java:125) > > > > > > > > > > Example 2 – The stack overflow seen with Groovy 3.0.23 when parsing one of > our TPL template files: > > > > OpenJDK 64-Bit Server VM warning: Potentially dangerous stack overflow in > ReservedStackAccess annotated method > java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryAcquireShared(I)I > [1] > > [ERROR] Unhandled HTML reporter exception > > java.lang.IllegalStateException: Unexpected error loading template PacketTrace > > at > com.protocrawler.jtf.reporting.testexecution.html.TemplateManagementService.<init>(TemplateManagementService.java:115) > > at > com.protocrawler.jtf.reporting.testexecution.html.TemplateManagementService.getTemplateManagementService(TemplateManagementService.java:51) > > at > org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:318) > > at > com.protocrawler.jtf.reporting.testexecution.html.MultiFileTestExecutionHTMLReporter.initialSetup(MultiFileTestExecutionHTMLReporter.groovy:173) > > at > com.protocrawler.pts.core.jtf.analysis.reporting.html.HTMLAnalysisReporter.super$2$initialSetup(HTMLAnalysisReporter.groovy) > > at > java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) > > at java.base/java.lang.reflect.Method.invoke(Method.java:580) > > at > org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107) > > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323) > > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1254) > > at > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:144) > > at > com.protocrawler.pts.core.jtf.analysis.reporting.html.HTMLAnalysisReporter.initialSetup(HTMLAnalysisReporter.groovy:94) > > at > org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:318) > > at > com.protocrawler.jtf.reporting.testexecution.html.MultiFileTestExecutionHTMLReporter.generateReport(MultiFileTestExecutionHTMLReporter.groovy:98) > > at > com.protocrawler.jtf.reporting.testexecution.html.cmdln.HTMTestExecutionReport.performCommand(HTMTestExecutionReport.java:219) > > at > com.protocrawler.jtf.reporting.testexecution.html.cmdln.HTMTestExecutionReport.performCommand(HTMTestExecutionReport.java:36) > > at > com.protocrawler.jstdlib.emfcore.cmdline.EMFSettingsCommandLineCommand.performCommand(EMFSettingsCommandLineCommand.java:111) > > at > com.protocrawler.jstdlib.applications.cmdln.DefaultEclipseRCPCommandLineApplication.start(DefaultEclipseRCPCommandLineApplication.java:126) > > at > org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208) > > at > org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143) > > at > org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109) > > at > org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439) > > at > org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271) > > at > java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) > > at java.base/java.lang.reflect.Method.invoke(Method.java:580) > > at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:668) > > at org.eclipse.equinox.launcher.Main.basicRun(Main.java:605) > > at org.eclipse.equinox.launcher.Main.run(Main.java:1481) > > at org.eclipse.equinox.launcher.Main.main(Main.java:1454) > > Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: > startup failed: > > General error during canonicalization: Requesting upgrade to write lock. > > > > java.lang.IllegalMonitorStateException: Requesting upgrade to write lock. > > at > org.eclipse.osgi.container.ModuleDatabase.writeLock(ModuleDatabase.java:840) > > at > org.eclipse.osgi.container.ModuleContainer.applyDelta(ModuleContainer.java:984) > > at > org.eclipse.osgi.container.ModuleContainer.resolveDynamic(ModuleContainer.java:835) > > at > org.eclipse.osgi.internal.loader.BundleLoader.findDynamicSource(BundleLoader.java:1269) > > at > org.eclipse.osgi.internal.loader.BundleLoader.findResource(BundleLoader.java:729) > > at > org.eclipse.osgi.internal.loader.ModuleClassLoader.getResource(ModuleClassLoader.java:212) > > at java.base/java.lang.ClassLoader.getResource(ClassLoader.java:1413) > > at > org.codehaus.groovy.control.ClassNodeResolver.findDecompiled(ClassNodeResolver.java:248) > > at > org.codehaus.groovy.control.ClassNodeResolver.tryAsLoaderClassOrScript(ClassNodeResolver.java:189) > > at > org.codehaus.groovy.control.ClassNodeResolver.findClassNode(ClassNodeResolver.java:169) > > at > org.codehaus.groovy.control.ClassNodeResolver.resolveName(ClassNodeResolver.java:125) > > at > org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClassNullable(AsmReferenceResolver.java:57) > > at > org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClass(AsmReferenceResolver.java:44) > > at > org.codehaus.groovy.ast.decompiled.TypeSignatureParser.visitEnd(TypeSignatureParser.java:102) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:206) > > at > groovyjarjarasm.asm.signature.SignatureReader.accept(SignatureReader.java:124) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.parseClassSignature(ClassSignatureParser.java:74) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.configureClass(ClassSignatureParser.java:32) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitSupers(DecompiledClassNode.java:163) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getGenericsTypes(DecompiledClassNode.java:128) > > at > org.codehaus.groovy.ast.decompiled.TypeSignatureParser.visitEnd(TypeSignatureParser.java:114) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:206) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:240) > > at > groovyjarjarasm.asm.signature.SignatureReader.accept(SignatureReader.java:124) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.parseClassSignature(ClassSignatureParser.java:74) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.configureClass(ClassSignatureParser.java:32) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitSupers(DecompiledClassNode.java:163) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getGenericsTypes(DecompiledClassNode.java:128) > > at > org.codehaus.groovy.ast.decompiled.TypeSignatureParser.visitEnd(TypeSignatureParser.java:114) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:206) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:240) > > at > groovyjarjarasm.asm.signature.SignatureReader.accept(SignatureReader.java:124) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.parseClassSignature(ClassSignatureParser.java:74) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.configureClass(ClassSignatureParser.java:32) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitSupers(DecompiledClassNode.java:163) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getGenericsTypes(DecompiledClassNode.java:128) > > at > org.codehaus.groovy.ast.decompiled.TypeSignatureParser.visitEnd(TypeSignatureParser.java:114) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:206) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:240) > > at > groovyjarjarasm.asm.signature.SignatureReader.accept(SignatureReader.java:124) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.parseClassSignature(ClassSignatureParser.java:74) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.configureClass(ClassSignatureParser.java:32) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitSupers(DecompiledClassNode.java:163) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getGenericsTypes(DecompiledClassNode.java:128) > > at > org.codehaus.groovy.ast.decompiled.TypeSignatureParser.visitEnd(TypeSignatureParser.java:114) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:206) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:240) > > at > groovyjarjarasm.asm.signature.SignatureReader.accept(SignatureReader.java:124) > > > > <<removed ~900 lines to make the email shorter>> > > > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.parseClassSignature(ClassSignatureParser.java:74) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.configureClass(ClassSignatureParser.java:32) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitSupers(DecompiledClassNode.java:163) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getGenericsTypes(DecompiledClassNode.java:128) > > at > org.codehaus.groovy.ast.decompiled.TypeSignatureParser.visitEnd(TypeSignatureParser.java:114) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:206) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:240) > > at > groovyjarjarasm.asm.signature.SignatureReader.accept(SignatureReader.java:124) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.parseClassSignature(ClassSignatureParser.java:74) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.configureClass(ClassSignatureParser.java:32) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitSupers(DecompiledClassNode.java:163) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getGenericsTypes(DecompiledClassNode.java:128) > > at > org.codehaus.groovy.ast.decompiled.TypeSignatureParser.visitEnd(TypeSignatureParser.java:114) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:206) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:240) > > at > groovyjarjarasm.asm.signature.SignatureReader.accept(SignatureReader.java:124) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.parseClassSignature(ClassSignatureParser.java:74) > > at > org.codehaus.groovy.ast.decompiled.ClassSignatureParser.configureClass(ClassSignatureParser.java:32) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitSupers(DecompiledClassNode.java:163) > > at > org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getGenericsTypes(DecompiledClassNode.java:128) > > at > org.codehaus.groovy.ast.decompiled.TypeSignatureParser.visitEnd(TypeSignatureParser.java:114) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:206) > > at > groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:240) > > at > groovyjarjarasm.asm.signature.SignatureReader.accept(SignatureReader.java:124) > > > > 1 error > > > > at > org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:292) > > at > org.codehaus.groovy.control.ErrorCollector.addException(ErrorCollector.java:140) > > at > org.codehaus.groovy.control.CompilationUnit$IPrimaryClassNodeOperation.doPhaseOperation(CompilationUnit.java:977) > > at > org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:672) > > at > org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:636) > > at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:392) > > at > groovy.lang.GroovyClassLoader.lambda$parseClass$3(GroovyClassLoader.java:335) > > at > org.codehaus.groovy.runtime.memoize.StampedCommonCache.compute(StampedCommonCache.java:163) > > at > org.codehaus.groovy.runtime.memoize.StampedCommonCache.getAndPut(StampedCommonCache.java:154) > > at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:333) > > at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:317) > > at > groovy.text.markup.MarkupTemplateEngine$TemplateGroovyClassLoader.parseClass(MarkupTemplateEngine.java:256) > > at > groovy.text.markup.MarkupTemplateEngine$MarkupTemplateMaker.<init>(MarkupTemplateEngine.java:229) > > at > groovy.text.markup.MarkupTemplateEngine.createTemplate(MarkupTemplateEngine.java:174) > > at > com.protocrawler.jtf.reporting.testexecution.html.TemplateManagementService.loadTemplate(TemplateManagementService.java:142) > > at > com.protocrawler.jtf.reporting.testexecution.html.TemplateManagementService.getTemplateFromInfo(TemplateManagementService.java:175) > > at > com.protocrawler.jtf.reporting.testexecution.html.TemplateManagementService.<init>(TemplateManagementService.java:111) > > ... 28 common frames omitted > > Error occurred during execution: Unexpected error loading template PacketTrace > > > > Does anyone have any suggestions of what the cause of these issues may be, or > steps we could take to avoid the issues please? > > > > > > If it’s relevant here, the JRE we’re currently using is Just J OpenJDK JRE > 21.0.5, though we’ve tried other versions of OpenJDK including 17.x and still > see the same issues. > > > > Best Regards, > > > > Rich. > >