You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Julien Vermillard (JIRA)" <ji...@apache.org> on 2008/06/27 11:19:45 UTC

[jira] Closed: (DIRMINA-544) ConcurrentModificationException in MdcInjectionFilter

     [ https://issues.apache.org/jira/browse/DIRMINA-544?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Julien Vermillard closed DIRMINA-544.
-------------------------------------


> ConcurrentModificationException in MdcInjectionFilter
> -----------------------------------------------------
>
>                 Key: DIRMINA-544
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-544
>             Project: MINA
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0.0-M1
>            Reporter: Maarten Bosteels
>            Assignee: Maarten Bosteels
>             Fix For: 2.0.0-M2
>
>
> When doing some load testing on FtpServer, I ran into a threading
> issue in MdcInjectionFilter. When adding some load, I frequently get a
> ConcurrentModificationException on removing the MDC properties. Here's
> the stacktrace:
> java.util.ConcurrentModificationException
>        at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
>        at java.util.HashMap$KeyIterator.next(HashMap.java:828)
>        at org.apache.mina.filter.logging.MdcInjectionFilter.filter(MdcInjectionFilter.java:140)
>        at org.apache.mina.filter.util.CommonEventFilter.messageReceived(CommonEventFilter.java:67)
>        at org.apache.mina.common.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:401)
>        at org.apache.mina.common.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:38)
>        at org.apache.mina.common.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:820)
>        at org.apache.mina.common.DefaultIoFilterChain$HeadFilter.messageReceived(DefaultIoFilterChain.java:604)
>        at org.apache.mina.common.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:401)
>        at org.apache.mina.common.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:395)
>        at org.apache.mina.common.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:425)
>        at org.apache.mina.common.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:387)
>        at org.apache.mina.common.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:379)
>        at org.apache.mina.common.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:43)
>        at org.apache.mina.common.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:676)
>        at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>        at java.lang.Thread.run(Thread.java:619)
> The cause of the problem is a call to setProperty() from
> org.apache.ftpserver.command.USER. I'm not familiar enough with the
> MDC filter to identify the culprit. Simply synchronizing the context
> Map does not help. The test I'm running is quite simple:
> package org.apache.ftpserver.clienttests;
> public class MdcThreadingTest extends ClientTestTemplate {
>        public void testLoginMulti() throws Exception {
>                tearDown();
>                for(int i = 0; i<10000; i++) {
>                        setUp();
>                        assertTrue(client.login(ADMIN_USERNAME, ADMIN_PASSWORD));
>                        tearDown();
>                }
>                System.out.println("All done!");
>        }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.