From 314e3d527fdc24a4cf30cf1d028ed3489cafe57b Mon Sep 17 00:00:00 2001 From: Georgios Andrianakis Date: Thu, 21 Nov 2024 15:05:28 +0200 Subject: [PATCH] Register method for reflection when read or write interceptors exist This is needed because the interceptors need to get method metadata Fixes: #44564 --- .../server/deployment/ResteasyReactiveProcessor.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/extensions/resteasy-reactive/rest/deployment/src/main/java/io/quarkus/resteasy/reactive/server/deployment/ResteasyReactiveProcessor.java b/extensions/resteasy-reactive/rest/deployment/src/main/java/io/quarkus/resteasy/reactive/server/deployment/ResteasyReactiveProcessor.java index 2fd62b912d680..35ce4ab24bdde 100644 --- a/extensions/resteasy-reactive/rest/deployment/src/main/java/io/quarkus/resteasy/reactive/server/deployment/ResteasyReactiveProcessor.java +++ b/extensions/resteasy-reactive/rest/deployment/src/main/java/io/quarkus/resteasy/reactive/server/deployment/ResteasyReactiveProcessor.java @@ -1210,7 +1210,14 @@ public void additionalReflection(BeanArchiveIndexBuildItem beanArchiveIndexBuild // when a ContainerResponseFilter exists, it can potentially do responseContext.setEntityStream() // which then forces the use of the slow path for calling writers - if (!resourceInterceptorsBuildItem.getResourceInterceptors().getContainerResponseFilters().isEmpty()) { + ResourceInterceptors resourceInterceptors = resourceInterceptorsBuildItem.getResourceInterceptors(); + if (!resourceInterceptors.getContainerResponseFilters().isEmpty()) { + serializersRequireResourceReflection = true; + } + // when ReaderInterceptor or WriterInterceptor is used, we need to access to the Method + // because of InterceptorContext + if (!(resourceInterceptors.getReaderInterceptors().isEmpty() + && resourceInterceptors.getWriterInterceptors().isEmpty())) { serializersRequireResourceReflection = true; }