You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Maarten Bosteels (JIRA)" <ji...@apache.org> on 2008/03/10 11:35:46 UTC
[jira] Assigned: (DIRMINA-544) ConcurrentModificationException in
MdcInjectionFilter
[ https://issues.apache.org/jira/browse/DIRMINA-544?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Maarten Bosteels reassigned DIRMINA-544:
----------------------------------------
Assignee: Maarten Bosteels
> 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.