[ 
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.

Reply via email to