[ https://issues.apache.org/jira/browse/CXF-2357?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
William Tam updated CXF-2357: ----------------------------- Attachment: CXF-2357.patch The attached patch fixes the issue and includes a unit test. It also fixes another issue that ConnectionEvent.CONNECTION_CLOSED was not fired every time a handle is closed. > The equals() method of JCA connection handle always return false. > ------------------------------------------------------------------- > > Key: CXF-2357 > URL: https://issues.apache.org/jira/browse/CXF-2357 > Project: CXF > Issue Type: Bug > Components: Integration > Environment: Websphere 6.1.0.23. > Reporter: William Tam > Attachments: CXF-2357.patch > > > The symptom of this problem is that JCA outbound requests fail on every other > call when the JCA connection is invoked inside an EJB running in WebSphere > 6.1.0.23. But, invoking JCA connection inside a serlvet is not a problem. > The error reported by WebSphere is as follow. > [7/16/09 18:01:26:852 EDT] 00000024 MCWrapper E J2CA0079E: Method > getNoTransactionWrapper has detected an internal illegal state and is > throwing an IllegalStateException. The exception is: > java.lang.IllegalStateException: getNoTransactionWrapper: illegal state > exception. State = STATE_ACTIVE_FREE > at > com.ibm.ejs.j2c.MCWrapper.getNoTransactionWrapper(MCWrapper.java:1060) > at > com.ibm.ejs.j2c.ConnectionManager.initializeForUOW(ConnectionManager.java:1146) > at > com.ibm.ejs.j2c.ConnectionManager.reAssociate(ConnectionManager.java:1421) > at com.ibm.ejs.j2c.HandleList.reAssociate(HandleList.java:361) > at > com.ibm.ejs.j2c.HandleCollaborator.preInvoke(HandleCollaborator.java:76) > at > com.ibm.ejs.container.StatelessBeanO.preInvoke(StatelessBeanO.java:382) > at > com.ibm.ejs.container.EJSContainer.preInvokeActivate(EJSContainer.java:3465) > at com.ibm.ejs.container.EJSContainer.preInvoke(EJSContainer.java:2839) > at > demo.ejb.EJSRemoteStatelessTestEJB_b3bd2fe8.getResponseFromWebService(Unknown > Source) > at > demo.ejb._TestEJB_Stub.getResponseFromWebService(_TestEJB_Stub.java:307) > at demo.servlet.HelloWorldServlet.callEJB(HelloWorldServlet.java:82) > at > demo.servlet.HelloWorldServlet.writeMainBody(HelloWorldServlet.java:95) > at demo.servlet.DemoServletBase.writeBody(Unknown Source) > at demo.servlet.DemoServletBase.doGet(Unknown Source) > at demo.servlet.HelloWorldServlet.doGet(HelloWorldServlet.java:52) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:743) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) > at > com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966) > at > com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478) > at > com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463) > at > com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:92) > at > com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:744) > at > com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1425) > at > com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:92) > at > com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465) > at > com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394) > at > com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:274) > at > com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) > at > com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113) > at > com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:556) > at > com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:606) > at > com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:979) > at > com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1064) > at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1498) > [7/16/09 18:01:26:953 EDT] 00000024 HandleList W > PARK_OR_REASSOCIATE_FAILED_W_J2CA0083 > [7/16/09 18:01:27:005 EDT] 00000024 ExceptionUtil E CNTR0020E: EJB threw an > unexpected (non-declared) exception during invocation of method > "getResponseFromWebService" on bean > "BeanId(HelloWorldEAR#helloworld-ejb.jar#TestEJB, null)". Exception data: > java.rmi.RemoteException: ; nested exception is: > javax.resource.ResourceException: Reassociate call Failed > at > com.ibm.ejs.container.StatelessBeanO.preInvoke(StatelessBeanO.java:385) > at > com.ibm.ejs.container.EJSContainer.preInvokeActivate(EJSContainer.java:3465) > at com.ibm.ejs.container.EJSContainer.preInvoke(EJSContainer.java:2839) > at > demo.ejb.EJSRemoteStatelessTestEJB_b3bd2fe8.getResponseFromWebService(Unknown > Source) > at > demo.ejb._TestEJB_Stub.getResponseFromWebService(_TestEJB_Stub.java:307) > at demo.servlet.HelloWorldServlet.callEJB(HelloWorldServlet.java:82) > at > demo.servlet.HelloWorldServlet.writeMainBody(HelloWorldServlet.java:95) > at demo.servlet.DemoServletBase.writeBody(Unknown Source) > at demo.servlet.DemoServletBase.doGet(Unknown Source) > at demo.servlet.HelloWorldServlet.doGet(HelloWorldServlet.java:52) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:743) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) > at > com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966) > at > com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478) > at > com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463) > at > com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:92) > at > com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:744) > at > com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1425) > at > com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:92) > at > com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465) > at > com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394) > at > com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:274) > at > com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) > at > com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113) > at > com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:556) > at > com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:606) > at > com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:979) > at > com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1064) > at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1498) > Caused by: javax.resource.ResourceException: Reassociate call Failed > at com.ibm.ejs.j2c.HandleList.reAssociate(HandleList.java:395) > at > com.ibm.ejs.j2c.HandleCollaborator.preInvoke(HandleCollaborator.java:76) > at > com.ibm.ejs.container.StatelessBeanO.preInvoke(StatelessBeanO.java:382) > ... 28 more -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.