Adriano Machado created CAMEL-21604:
---------------------------------------

             Summary: GZIP interceptor added as a CXF feature is not working 
properly for CXF SOAP and CXF REST on Camel Spring Boot
                 Key: CAMEL-21604
                 URL: https://issues.apache.org/jira/browse/CAMEL-21604
             Project: Camel
          Issue Type: Bug
          Components: camel-cxf, camel-cxfrs
    Affects Versions: 4.8.2
            Reporter: Adriano Machado


Adding the GZIP feature to enable interceptors generate failures at runtime:

 
{code:java}
<beans xmlns="http://www.springframework.org/schema/beans";
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
       xmlns:cxfrs="http://camel.apache.org/schema/cxf/jaxrs";
       xsi:schemaLocation="
      http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd
      http://camel.apache.org/schema/cxf/jaxrs 
http://camel.apache.org/schema/cxf/jaxrs/camel-cxf.xsd";>

        <cxfrs:rsClient address="${search.service.endpoint}"
                        id="rs-service-client"
                        serviceClass="my.example.search.SearchResource"
                        loggingFeatureEnabled="true">
                <cxfrs:features>
                        <bean 
class="org.apache.cxf.transport.common.gzip.GZIPFeature" />
                </cxfrs:features>
        </cxfrs:rsClient>
</beans>{code}
Generates the following exception when the service is called at runtime:

 
{noformat}
java.lang.UnsupportedOperationException: null
        at java.base/java.util.AbstractList.add(AbstractList.java:153) ~[na:na]
        at java.base/java.util.AbstractList.add(AbstractList.java:111) ~[na:na]
        at 
org.apache.cxf.transport.common.gzip.GZIPOutInterceptor.addHeader(GZIPOutInterceptor.java:333)
 ~[cxf-core-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]
        at 
org.apache.cxf.transport.common.gzip.GZIPOutInterceptor.gzipPermitted(GZIPOutInterceptor.java:189)
 ~[cxf-core-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]

        at 
org.apache.cxf.transport.common.gzip.GZIPOutInterceptor.handleMessage(GZIPOutInterceptor.java:137)
 ~[cxf-core-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
 ~[cxf-core-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]       at 
org.apache.cxf.jaxrs.client.AbstractClient.doRunInterceptorChain(AbstractClient.java:717)
 ~[cxf-rt-rs-client-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]
        at 
org.apache.cxf.jaxrs.client.ClientProxyImpl.doInvokeAsync(ClientProxyImpl.java:992)
 ~[cxf-rt-rs-client-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]
        at 
org.apache.cxf.jaxrs.client.ClientProxyImpl.doChainedInvocation(ClientProxyImpl.java:922)
 ~[cxf-rt-rs-client-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]
        at 
org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:347) 
~[cxf-rt-rs-client-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]
        at jdk.proxy3/jdk.proxy3.$Proxy184.iborUpdateMemberPreferences(Unknown 
Source) ~[na:na]
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[na:na]
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
 ~[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:568) 
~[na:na]  at 
org.apache.camel.component.cxf.jaxrs.CxfRsProducer.invokeAsyncProxyClient(CxfRsProducer.java:233)
 ~[camel-cxf-rest-4.8.0.redhat-00017.jar:4.8.0.redhat-00017]        at 
org.apache.camel.component.cxf.jaxrs.CxfRsProducer.process(CxfRsProducer.java:121)
 ~[camel-cxf-rest-4.8.0.redhat-00017.jar:4.8.0.redhat-00017]       at 
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:208) 
~[camel-core-processor-4.8.0.redhat-00017.jar:4.8.0.redhat-00017]   at 
org.apache.camel.impl.engine.CamelInternalProcessor.processNonTransacted(CamelInternalProcessor.java:347)
 ~[camel-base-engine-4.8.0.redhat-00017.jar:4.8.0.redhat-00017]     at 
org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:323)
 ~[camel-base-engine-4.8.0.redhat-00017.jar:4.8.0.redhat-00017]  at 
org.apache.camel.processor.Pipeline$PipelineTask.run(Pipeline.java:102) 
~[camel-core-processor-4.8.0.redhat-00017.jar:4.8.0.redhat-00017]    at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.doRun(DefaultReactiveExecutor.java:199)
 ~[camel-base-engine-4.8.0.redhat-00017.jar:4.8.0.redhat-00017]   at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeReactiveWork(DefaultReactiveExecutor.java:189)
 ~[camel-base-engine-4.8.0.redhat-00017.jar:4.8.0.redhat-00017]     at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.tryExecuteReactiveWork(DefaultReactiveExecutor.java:166)
 ~[camel-base-engine-4.8.0.redhat-00017.jar:4.8.0.redhat-00017]  at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
 ~[camel-base-engine-4.8.0.redhat-00017.jar:4.8.0.redhat-00017]        at 
org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59)
 ~[camel-base-engine-4.8.0.redhat-00017.jar:4.8.0.redhat-00017]    at 
org.apache.camel.processor.Pipeline.process(Pipeline.java:163) 
~[camel-core-processor-4.8.0.redhat-00017.jar:4.8.0.redhat-00017]     at 
org.apache.camel.impl.engine.CamelInternalProcessor.processNonTransacted(CamelInternalProcessor.java:347)
 ~[camel-base-engine-4.8.0.redhat-00017.jar:4.8.0.redhat-00017]     at 
org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:323)
 ~[camel-base-engine-4.8.0.redhat-00017.jar:4.8.0.redhat-00017]  at 
org.apache.camel.component.cxf.jaxrs.CxfRsInvoker.asyncInvoke(CxfRsInvoker.java:100)
 ~[camel-cxf-rest-4.8.0.redhat-00017.jar:4.8.0.redhat-00017]     at 
org.apache.camel.component.cxf.jaxrs.CxfRsInvoker.performInvocation(CxfRsInvoker.java:72)
 ~[camel-cxf-rest-4.8.0.redhat-00017.jar:4.8.0.redhat-00017]        at 
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) 
~[cxf-core-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]       at 
org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:200) 
~[cxf-rt-frontend-jaxrs-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019] at 
org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:103) 
~[cxf-rt-frontend-jaxrs-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019] at 
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)
 ~[cxf-core-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]        at 
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96)
 ~[cxf-core-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
 ~[cxf-core-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]       at 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
 ~[cxf-core-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019] at 
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:265)
 ~[cxf-rt-transports-http-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019] 
at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:233)
 ~[cxf-rt-transports-http-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]  
     at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:207)
 ~[cxf-rt-transports-http-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]  
at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:159)
 ~[cxf-rt-transports-http-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]  
at 
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:224)
 ~[cxf-rt-transports-http-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]  
    at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:303)
 ~[cxf-rt-transports-http-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]  
     at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:216)
 ~[cxf-rt-transports-http-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]  
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:547) 
~[jakarta.servlet-api-6.0.0.redhat-00006.jar:6.0.0.redhat-00006]      at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:278)
 ~[cxf-rt-transports-http-4.0.5.fuse-redhat-00019.jar:4.0.5.fuse-redhat-00019]  
   at 
io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]    at 
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]  at 
org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
 ~[spring-web-6.1.15.jar:6.1.15]  at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
 ~[spring-web-6.1.15.jar:6.1.15]  at 
io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) 
~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]       
at 
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]  at 
org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
 ~[spring-web-6.1.15.jar:6.1.15] at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
 ~[spring-web-6.1.15.jar:6.1.15]  at 
io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) 
~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]       
at 
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]  at 
org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:113)
 ~[spring-web-6.1.15.jar:6.1.15]    at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
 ~[spring-web-6.1.15.jar:6.1.15]  at 
io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) 
~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]       
at 
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]  at 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
 ~[spring-web-6.1.15.jar:6.1.15]    at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
 ~[spring-web-6.1.15.jar:6.1.15]  at 
io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) 
~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]       
at 
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]  at 
io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) 
~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]      at 
io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]   at 
io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68) 
~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]      at 
io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]      
at 
io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]    at 
io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]      
at 
io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]       
at 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
 ~[undertow-core-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]    at 
io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
 ~[undertow-core-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]      at 
io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001] at 
io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
 ~[undertow-core-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]    at 
io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]     at 
io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
 ~[undertow-core-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]        at 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
 ~[undertow-core-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]    at 
io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]        
at 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
 ~[undertow-core-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]    at 
io.undertow.servlet.handlers.SessionRestoringHandler.handleRequest(SessionRestoringHandler.java:119)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001] at 
io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]        
at 
io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]    at 
io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]    at 
io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]       
at 
io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001] at 
io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]   at 
io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:101)
 ~[undertow-servlet-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]   at 
io.undertow.server.Connectors.executeRootHandler(Connectors.java:395) 
~[undertow-core-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]   at 
io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:896) 
~[undertow-core-2.3.18.SP1-redhat-00001.jar:2.3.18.SP1-redhat-00001]        at 
org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18) 
~[jboss-threads-3.5.0.Final.jar:3.5.0.Final]      at 
org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
 ~[jboss-threads-3.5.0.Final.jar:3.5.0.Final]       at 
org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
 ~[jboss-threads-3.5.0.Final.jar:3.5.0.Final] at 
org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282) 
~[xnio-api-3.8.16.Final-redhat-00001.jar:3.8.16.Final-redhat-00001]    at 
java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]{noformat}
 

 

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to