[ https://issues.apache.org/jira/browse/CXF-4060?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aki Yoshida closed CXF-4060. ---------------------------- Resolution: Fixed saw the test error https://builds.apache.org/job/CXF-2.5.x/29/ and thought this ticket must be reopened to repair the error. but it seems to be not the case, thereby closing it again. > oneway camel scenario is accessing the user principal too late, resulting in > IllegalStateException > -------------------------------------------------------------------------------------------------- > > Key: CXF-4060 > URL: https://issues.apache.org/jira/browse/CXF-4060 > Project: CXF > Issue Type: Bug > Components: Transports > Affects Versions: 2.4.6, 2.5.2 > Environment: gemini.web.tomcat 2.0.1 > Reporter: Aki Yoshida > Assignee: Aki Yoshida > Fix For: 2.4.7, 2.5.3, 2.6 > > > Camel-CXF looks up the user principal in Camel's DefaultCxfBinding over CXF's > SecurityContext object stored in the message. > In the current implementation, the principal in this object is dynamically > retrieved from the associated servlet request object. > Under some specific circumstances such as using tomcat with the JVM's > security manager enabled, the request object is recycled after the calling > thread returns. This can lead to the following exception for oneway call: > java.lang.IllegalStateException: The request object has been recycled and is > no longer associated with this facade > at > org.apache.catalina.connector.RequestFacade.getUserPrincipal(RequestFacade.java:831) > ~[na:na] > at > org.apache.cxf.transport.http.AbstractHTTPDestination$2.getUserPrincipal(AbstractHTTPDestination.java:304) > ~[bundlefile:2.5.1] > at > org.apache.camel.component.cxf.DefaultCxfBinding.populateExchangeFromCxfRequest(DefaultCxfBinding.java:235) > ~[bundlefile:2.8.3] > at > org.apache.camel.component.cxf.CxfConsumer$1.perpareCamelExchange(CxfConsumer.java:159) > ~[bundlefile:2.8.3] > at > org.apache.camel.component.cxf.CxfConsumer$1.syncInvoke(CxfConsumer.java:117) > ~[bundlefile:2.8.3] > at > org.apache.camel.component.cxf.CxfConsumer$1.invoke(CxfConsumer.java:71) > ~[bundlefile:2.8.3] > at > org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) > ~[na:na] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) > ~[na:1.6.0_24] > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > ~[na:1.6.0_24] > at java.util.concurrent.FutureTask.run(FutureTask.java:138) > ~[na:1.6.0_24] > at > org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) > ~[bundlefile:2.5.1] > at > org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106) > ~[na:na] > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) > ~[bundlefile:2.5.1] > at > org.apache.cxf.phase.PhaseInterceptorChain.resume(PhaseInterceptorChain.java:232) > ~[bundlefile:2.5.1] > at > org.apache.cxf.interceptor.OneWayProcessorInterceptor$1.run(OneWayProcessorInterceptor.java:130) > ~[na:na] > at > org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:371) > ~[bundlefile:2.5.1] > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > ~[na:1.6.0_24] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > ~[na:1.6.0_24] > at java.lang.Thread.run(Thread.java:662) ~[na:1.6.0_24] -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira