Just Call the "/hello" Endpoint to trigger the exception.
Version: 2.0.1
Stacktrace:
java.lang.StackOverflowError
at java.base/java.util.concurrent.ConcurrentHashMap.putIfAbsent(ConcurrentHashMap.java:1541)
at java.base/java.lang.ClassLoader.getClassLoadingLock(ClassLoader.java:668)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:591)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:406)
at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:397)
at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:406)
at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:397)
at acme.ThrowableExceptionMapper$GeneratedExceptionHandlerFor$Throwable$OfMethod$map_Subclass.toResponse(ThrowableExceptionMapper$GeneratedExceptionHandlerFor$Throwable$OfMethod$map_Subclass.zig:307)
at acme.ThrowableExceptionMapper$GeneratedExceptionHandlerFor$Throwable$OfMethod$map.toResponse(ThrowableExceptionMapper$GeneratedExceptionHandlerFor$Throwable$OfMethod$map.zig:68)
at acme.ThrowableExceptionMapper$GeneratedExceptionHandlerFor$Throwable$OfMethod$map_Subclass.toResponse$$superforward1(ThrowableExceptionMapper$GeneratedExceptionHandlerFor$Throwable$OfMethod$map_Subclass.zig:145)
at acme.ThrowableExceptionMapper$GeneratedExceptionHandlerFor$Throwable$OfMethod$map_Subclass$$function$$2.apply(ThrowableExceptionMapper$GeneratedExceptionHandlerFor$Throwable$OfMethod$map_Subclass$$function$$2.zig:41)
at io.quarkus.arc.impl.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:54)
at io.quarkus.arc.runtime.devconsole.InvocationInterceptor.proceed(InvocationInterceptor.java:62)
at io.quarkus.arc.runtime.devconsole.InvocationInterceptor.monitor(InvocationInterceptor.java:49)
at io.quarkus.arc.runtime.devconsole.InvocationInterceptor_Bean.intercept(InvocationInterceptor_Bean.zig:521)
at io.quarkus.arc.impl.InterceptorInvocation.invoke(InterceptorInvocation.java:41)
at io.quarkus.arc.impl.AroundInvokeInvocationContext.perform(AroundInvokeInvocationContext.java:41)
at io.quarkus.arc.impl.InvocationContexts.performAroundInvoke(InvocationContexts.java:32)
at acme.ThrowableExceptionMapper$GeneratedExceptionHandlerFor$Throwable$OfMethod$map_Subclass.toResponse(ThrowableExceptionMapper$GeneratedExceptionHandlerFor$Throwable$OfMethod$map_Subclass.zig:307)
at acme.ThrowableExceptionMapper$GeneratedExceptionHandlerFor$Throwable$OfMethod$map.toResponse(ThrowableExceptionMapper$GeneratedExceptionHandlerFor$Throwable$OfMethod$map.zig:68)
at acme.ThrowableExceptionMapper$GeneratedExceptionHandlerFor$Throwable$OfMethod$map_Subclass.toResponse$$superforward1(ThrowableExceptionMapper$GeneratedExceptionHandlerFor$Throwable$OfMethod$map_Subclass.zig:145)
at acme.ThrowableExceptionMapper$GeneratedExceptionHandlerFor$Throwable$OfMethod$map_Subclass$$function$$2.apply(ThrowableExceptionMapper$GeneratedExceptionHandlerFor$Throwable$OfMethod$map_Subclass$$function$$2.zig:41)
at io.quarkus.arc.impl.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:54)
at io.quarkus.arc.runtime.devconsole.InvocationInterceptor.proceed(InvocationInterceptor.java:62)
at io.quarkus.arc.runtime.devconsole.InvocationInterceptor.monitor(InvocationInterceptor.java:49)
at io.quarkus.arc.runtime.devconsole.InvocationInterceptor_Bean.intercept(InvocationInterceptor_Bean.zig:521)
at io.quarkus.arc.impl.InterceptorInvocation.invoke(InterceptorInvocation.java:41)
at io.quarkus.arc.impl.AroundInvokeInvocationContext.perform(AroundInvokeInvocationContext.java:41)
at io.quarkus.arc.impl.InvocationContexts.performAroundInvoke(InvocationContexts.java:32)
...
EDIT:
I cleaned up the reproducer, because i tested a lot of stuff and left unused extensions in the gradle build file.
Also i changed the target version for kotlin to 11, because i forgot to change it.
Describe the bug
An ServerExceptionMapper for Throwables always throws a StackOverflowException.
Reproducer:
reproducer-cleaned.zip
Just Call the "/hello" Endpoint to trigger the exception.
Version: 2.0.1
Stacktrace:
EDIT: I cleaned up the reproducer, because i tested a lot of stuff and left unused extensions in the gradle build file. Also i changed the target version for kotlin to 11, because i forgot to change it.
https://github.com/quarkusio/quarkus/issues/18603
$upstream:18603$