[jboss-jira] [JBoss JIRA] Updated: (JBMESSAGING-1488) ConcurrentModificationException on SessionFActory
Clebert Suconic (JIRA)
jira-events at lists.jboss.org
Thu Jan 15 21:41:29 EST 2009
[ https://jira.jboss.org/jira/browse/JBMESSAGING-1488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Clebert Suconic updated JBMESSAGING-1488:
-----------------------------------------
Summary: ConcurrentModificationException on SessionFActory (was: ConcurrentModificationException if MultipleThreads are creating Connections simultaneously)
Description:
The following test would throw a ConcurrentModificationException,
It failed on a SessionFactory with backup properties, but I believe it would fail without the Failover set also:
public void testFactory() throws Exception
{
final ClientSessionFactory factory = createFailoverFactory(); // Just a regular factory with Backup configured
for (int i = 0; i < 2; i++)
{
ClientSession sessions[] = new ClientSession[10];
for (int j = 0; j < 10; j++)
{
sessions[j] = factory.createSession(false, true, true);
sessions[j].start();
}
for (ClientSession session: sessions)
{
session.close();
}
}
}
exception is thrown:
MessagingException[errorCode=0 message=Failed to create session]
at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.createSession(ConnectionManagerImpl.java:335)
at org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.createSessionInternal(ClientSessionFactoryImpl.java:846)
at org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.createSession(ClientSessionFactoryImpl.java:576)
at org.jboss.messaging.tests.integration.cluster.failover.PagingFailoverTest$1Consumer.run(PagingFailoverTest.java:330)
Caused by: java.util.ConcurrentModificationException
at java.util.LinkedHashMap$LinkedHashIterator.nextEntry(LinkedHashMap.java:373)
at java.util.LinkedHashMap$ValueIterator.next(LinkedHashMap.java:388)
at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.getConnection(ConnectionManagerImpl.java:809)
at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.getConnectionForCreateSession(ConnectionManagerImpl.java:427)
at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.createSession(ConnectionManagerImpl.java:243)
... 3 more
was:
When you have several threads doing this:
Thread
run
Session s = factory.createSession(....);
s.start();
This following exception is thrown:
MessagingException[errorCode=0 message=Failed to create session]
at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.createSession(ConnectionManagerImpl.java:335)
at org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.createSessionInternal(ClientSessionFactoryImpl.java:846)
at org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.createSession(ClientSessionFactoryImpl.java:576)
at org.jboss.messaging.tests.integration.cluster.failover.PagingFailoverTest$1Consumer.run(PagingFailoverTest.java:330)
Caused by: java.util.ConcurrentModificationException
at java.util.LinkedHashMap$LinkedHashIterator.nextEntry(LinkedHashMap.java:373)
at java.util.LinkedHashMap$ValueIterator.next(LinkedHashMap.java:388)
at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.getConnection(ConnectionManagerImpl.java:809)
at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.getConnectionForCreateSession(ConnectionManagerImpl.java:427)
at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.createSession(ConnectionManagerImpl.java:243)
... 3 more
> ConcurrentModificationException on SessionFActory
> -------------------------------------------------
>
> Key: JBMESSAGING-1488
> URL: https://jira.jboss.org/jira/browse/JBMESSAGING-1488
> Project: JBoss Messaging
> Issue Type: Bug
> Reporter: Clebert Suconic
> Assignee: Clebert Suconic
> Fix For: 2.0.0 Beta
>
>
> The following test would throw a ConcurrentModificationException,
> It failed on a SessionFactory with backup properties, but I believe it would fail without the Failover set also:
> public void testFactory() throws Exception
> {
> final ClientSessionFactory factory = createFailoverFactory(); // Just a regular factory with Backup configured
>
> for (int i = 0; i < 2; i++)
> {
> ClientSession sessions[] = new ClientSession[10];
> for (int j = 0; j < 10; j++)
> {
> sessions[j] = factory.createSession(false, true, true);
> sessions[j].start();
> }
>
> for (ClientSession session: sessions)
> {
> session.close();
> }
>
> }
>
> }
> exception is thrown:
> MessagingException[errorCode=0 message=Failed to create session]
> at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.createSession(ConnectionManagerImpl.java:335)
> at org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.createSessionInternal(ClientSessionFactoryImpl.java:846)
> at org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.createSession(ClientSessionFactoryImpl.java:576)
> at org.jboss.messaging.tests.integration.cluster.failover.PagingFailoverTest$1Consumer.run(PagingFailoverTest.java:330)
> Caused by: java.util.ConcurrentModificationException
> at java.util.LinkedHashMap$LinkedHashIterator.nextEntry(LinkedHashMap.java:373)
> at java.util.LinkedHashMap$ValueIterator.next(LinkedHashMap.java:388)
> at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.getConnection(ConnectionManagerImpl.java:809)
> at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.getConnectionForCreateSession(ConnectionManagerImpl.java:427)
> at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.createSession(ConnectionManagerImpl.java:243)
> ... 3 more
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list