jyinpci commented on PR #2202: URL: https://github.com/apache/cxf/pull/2202#issuecomment-2560485909
Hi @reta, Thanks for looking into this again. I am afraid it was not double-logging by the server and the client. Yes, both server and client logged the response. But the server logged the response once (indicated by "Outbound Message" label), and the client logged the response twice (indicated by "Inbound Message" label). In fact, because of the null body, it caused Camel to fail afterwards. Please note this was done using Camel without synchronous=true on the endpoint - I am under the impression that with the async support in CXF http client, we do not have to use synchronous=true with Camel. Here is the log generated by the test project I submitted: 2024-12-23T19:39:49.341-05:00 INFO 8592 --- [ - timer://test] o.a.c.interceptor.LoggingOutInterceptor : Outbound Message --------------------------- ID: 1 Address: http://localhost:8081/test/user Http-Method: PUT Content-Type: application/json Headers: {cache-control=[no-cache], Content-Type=[application/json], Content-Language=[en_US], Connection=[Keep-Alive], Accept=[*/*]} Payload: {"id":4,"name":"Charlie Parker"} -------------------------------------- 2024-12-23T19:39:49.512-05:00 INFO 8592 --- [qtp669781254-80] o.a.c.interceptor.LoggingInInterceptor : Inbound Message ---------------------------- ID: 2 Address: http://localhost:8081/test/user Encoding: UTF-8 Http-Method: PUT Content-Type: application/json Headers: {Accept=[*/*], Cache-Control=[no-cache], connection=[keep-alive], Content-Language=[en_US], Content-Length=[32], content-type=[application/json], Host=[localhost:8081], User-Agent=[Apache CXF 4.1.0]} Payload: {"id":4,"name":"Charlie Parker"} -------------------------------------- 2024-12-23T19:39:49.525-05:00 INFO 8592 --- [qtp669781254-80] route1 : request received {"id":4,"name":"Charlie Parker"} 2024-12-23T19:39:49.533-05:00 INFO 8592 --- [qtp669781254-80] o.a.c.interceptor.LoggingOutInterceptor : Outbound Message --------------------------- ID: 2 Response-Code: 200 Content-Type: application/json Headers: {uri_eb_url_any=[user], Accept=[*/*], Cache-Control=[no-cache], User-Agent=[Apache CXF 4.1.0], connection=[keep-alive], Host=[localhost:8081], Content-Language=[en_US], Content-Type=[application/json], Date=[Tue, 24 Dec 2024 00:39:49 GMT]} Payload: {"result": "Ok"} -------------------------------------- 2024-12-23T19:39:49.545-05:00 INFO 8592 --- [ult-workqueue-2] o.a.c.interceptor.LoggingInInterceptor : Inbound Message ---------------------------- ID: 1 Response-Code: 200 Encoding: ISO-8859-1 Content-Type: application/json Headers: {Accept=[*/*], Cache-Control=[no-cache], Content-Language=[en_US], Content-Type=[application/json], Date=[Tue, 24 Dec 2024 00:39:49 GMT], Host=[localhost:8081], Server=[Jetty(12.0.16)], Transfer-Encoding=[chunked], uri_eb_url_any=[user], User-Agent=[Apache CXF 4.1.0]} -------------------------------------- 2024-12-23T19:39:49.545-05:00 INFO 8592 --- [ult-workqueue-1] o.a.c.interceptor.LoggingInInterceptor : Inbound Message ---------------------------- ID: 1 Response-Code: 200 Encoding: ISO-8859-1 Content-Type: application/json Headers: {Accept=[*/*], Cache-Control=[no-cache], Content-Language=[en_US], Content-Type=[application/json], Date=[Tue, 24 Dec 2024 00:39:49 GMT], Host=[localhost:8081], Server=[Jetty(12.0.16)], Transfer-Encoding=[chunked], uri_eb_url_any=[user], User-Agent=[Apache CXF 4.1.0]} Payload: {"result": "Ok"} -------------------------------------- 2024-12-23T19:39:49.548-05:00 INFO 8592 --- [ult-workqueue-2] route2 : response received: 2024-12-23T19:39:49.548-05:00 INFO 8592 --- [ult-workqueue-1] route2 : response received: 2024-12-23T19:39:49.549-05:00 WARN 8592 --- [ult-workqueue-2] o.a.c.i.engine.DefaultReactiveExecutor : Error executing reactive work due to null. This exception is ignored. java.util.NoSuchElementException: null at java.base/java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1519) ~[na:na] at java.base/java.util.TreeMap$EntryIterator.next(TreeMap.java:1557) ~[na:na] at java.base/java.util.TreeMap$EntryIterator.next(TreeMap.java:1552) ~[na:na] at java.base/java.util.TreeMap.buildFromSorted(TreeMap.java:2914) ~[na:na] at java.base/java.util.TreeMap.buildFromSorted(TreeMap.java:2938) ~[na:na] at java.base/java.util.TreeMap.buildFromSorted(TreeMap.java:2938) ~[na:na] at java.base/java.util.TreeMap.buildFromSorted(TreeMap.java:2938) ~[na:na] at java.base/java.util.TreeMap.buildFromSorted(TreeMap.java:2863) ~[na:na] at java.base/java.util.TreeMap.putAll(TreeMap.java:354) ~[na:na] at org.apache.camel.support.MessageSupport.copyFromWithNewBody(MessageSupport.java:226) ~[camel-support-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] at org.apache.camel.support.MessageSupport.copyFrom(MessageSupport.java:193) ~[camel-support-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] at org.apache.camel.support.ExchangeHelper.copyFromOutMessageConditionally(ExchangeHelper.java:402) ~[camel-support-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] at org.apache.camel.support.ExchangeHelper.doCopyResults(ExchangeHelper.java:365) ~[camel-support-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] at org.apache.camel.support.ExchangeHelper.copyResults(ExchangeHelper.java:349) ~[camel-support-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] at org.apache.camel.processor.Pipeline$PipelineTask.run(Pipeline.java:105) ~[camel-core-processor-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.doRun(DefaultReactiveExecutor.java:199) ~[camel-base-engine-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeReactiveWork(DefaultReactiveExecutor.java:189) ~[camel-base-engine-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.tryExecuteReactiveWork(DefaultReactiveExecutor.java:166) ~[camel-base-engine-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148) ~[camel-base-engine-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] at org.apache.camel.impl.engine.DefaultReactiveExecutor.schedule(DefaultReactiveExecutor.java:54) ~[camel-base-engine-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.lambda$doRun$1(RedeliveryErrorHandler.java:813) ~[camel-core-processor-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] at org.apache.camel.component.cxf.jaxrs.CxfRsProducer$CxfInvocationCallback.completed(CxfRsProducer.java:732) ~[camel-cxf-rest-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] at org.apache.camel.component.cxf.jaxrs.CxfRsProducer$CxfInvocationCallback.completed(CxfRsProducer.java:680) ~[camel-cxf-rest-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] at org.apache.cxf.jaxrs.client.JaxrsClientCallback.handleResponse(JaxrsClientCallback.java:86) ~[cxf-rt-rs-client-4.1.0.jar:4.1.0] at org.apache.cxf.jaxrs.client.WebClient$ClientAsyncResponseInterceptor.doHandleAsyncResponse(WebClient.java:1033) ~[cxf-rt-rs-client-4.1.0.jar:4.1.0] at org.apache.cxf.jaxrs.client.AbstractClient$AbstractClientAsyncResponseInterceptor.handleAsyncResponse(AbstractClient.java:1317) ~[cxf-rt-rs-client-4.1.0.jar:4.1.0] at org.apache.cxf.jaxrs.client.AbstractClient$AbstractClientAsyncResponseInterceptor.handleMessage(AbstractClient.java:1287) ~[cxf-rt-rs-client-4.1.0.jar:4.1.0] at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) ~[cxf-core-4.1.0.jar:4.1.0] at org.apache.cxf.jaxrs.client.ClientMessageObserver.onMessage(ClientMessageObserver.java:56) ~[cxf-rt-rs-client-4.1.0.jar:4.1.0] at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1760) ~[cxf-rt-transports-http-4.1.0.jar:4.1.0] at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream$1.run(HTTPConduit.java:1238) ~[cxf-rt-transports-http-4.1.0.jar:4.1.0] at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:413) ~[cxf-core-4.1.0.jar:4.1.0] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na] at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:346) ~[cxf-core-4.1.0.jar:4.1.0] at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na] Thank you very much for being patient with me. :-) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@cxf.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org