Closed arinban closed 6 years ago
Original Issue:https://github.com/javaee/glassfish-genericjmsra/issues/16 Raised By:@glassfishrobot Created at:Mon Mar 06 07:41:25 IST 2006 Assigned To:@glassfishrobot
@glassfishrobot Commented on Mon Mar 06 07:41:25 IST 2006 Reported by binod
@glassfishrobot Commented on Mon Mar 06 08:19:48 IST 2006 binod said: Instead of using iterator, the cleanup code now uses an array to scan all the open sessions. It then closes all open sessions. So, the code should be okay now for thread safety. I will need some help to tes the WAS-ActiveMQ combination. Planning to send an e-mail to the folks who reported this.
@glassfishrobot Commented on Wed Mar 15 05:47:05 IST 2006 @sivakumart said: fixed in milestone 1.6
@glassfishrobot Commented on Mon Mar 06 07:41:25 IST 2006 Was assigned to binod
@glassfishrobot Commented on Mon Apr 24 13:01:40 IST 2017 This issue was imported from java.net JIRA GENERICJMSRA-16
@glassfishrobot Commented on Mon Sep 06 08:51:08 IST 2010 Marked as fixed on Sunday, September 5th 2010, 8:21:08 pm
@glassfishrobot Closed the issue on Mon Sep 06 08:51:08 IST 2010
The cleanup code in MC, when executed in WAS, seems to crash into a piece of code that is not really executed in Sun appserver. The code in question is not thread safe. Resulting exception trace is shown below.
equals
ManagedConnection
XAQueueConnection[ClientId=null
java.util.AbstractList$Itr.checkForComodification(AbstractList.java(Inlined
com.sun.genericra.outbound.ConnectionHandle.cleanup(ConnectionHandle.java:234)
com.sun.genericra.outbound.ManagedConnection.cleanup(ManagedConnection.java:182)
com.ibm.ejs.j2c.LocalTransactionWrapper.afterCompletion(LocalTransactionWrapper.java:1130)
com.ibm.ws.LocalTransaction.LocalTranCoordImpl.informSynchronizations(LocalTranCoordImpl.java:1486)
com.ibm.ws.LocalTransaction.LocalTranCoordImpl.complete(LocalTranCoordImpl.java:890)
com.ibm.ws.LocalTransaction.LocalTranCoordImpl.complete(LocalTranCoordImpl.java:720)
com.ibm.ws.LocalTransaction.LocalTranCurrentImpl.complete(LocalTranCurrentImpl.java:388)
com.ibm.ws.LocalTransaction.LocalTranCurrentSet.complete(LocalTranCurrentSet.java:191)
com.ibm.ws.webservices.engine.transport.TransactionSuspender.commitLocalTransaction(TransactionSuspender.java:172)
ejbs.ActiveMQSessionBean.sendRecvJMSMessageMultipleSuspends(ActiveMQSessionBean.java:477)
ejbs.EJSLocalStatelessActiveMQSession_036382fc.sendRecvJMSMessageMultipleSuspends(EJSLocalStatelessActiveMQSession_036382fc.java:297)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled
com.ibm.etools.utc.model.ReflectionMethodModel.invoke(ReflectionMethodModel.java:65)
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1282)
com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:673)
com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:80)
com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1804)
com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:84)
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:469)
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:408)
com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:101)
com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566)
com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619)
com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952)
com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039)