329642 Concurrent modification exception in Deployment Manager

git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk@2473 7e9141cc-0065-0410-87d8-b60c137991c4
This commit is contained in:
Greg Wilkins 2010-11-07 23:37:19 +00:00
parent e6c26b383e
commit 75d9d18b50
2 changed files with 5 additions and 21 deletions

View File

@ -12,6 +12,7 @@ jetty-7.2.1-SNAPSHOT
+ 328988 Idle saving of session values + 328988 Idle saving of session values
+ 329180 Spin check for Selector to stop + 329180 Spin check for Selector to stop
+ 329410 Enforce XmlConfiguration properties as Map<String,String> + 329410 Enforce XmlConfiguration properties as Map<String,String>
+ 329642 Concurrent modification exception in Deployment Manager
+ JETTY-748 Prevent race close of socket by old acceptor threads + JETTY-748 Prevent race close of socket by old acceptor threads
+ JETTY-1291 Extract query parameters even if POST content consumed + JETTY-1291 Extract query parameters even if POST content consumed
+ JETTY-1295 Contexts mixed up when hot-deploying on virtual hosts + JETTY-1295 Contexts mixed up when hot-deploying on virtual hosts

View File

@ -24,6 +24,8 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.ListIterator; import java.util.ListIterator;
import java.util.Map; import java.util.Map;
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
import org.eclipse.jetty.deploy.bindings.StandardDeployer; import org.eclipse.jetty.deploy.bindings.StandardDeployer;
import org.eclipse.jetty.deploy.bindings.StandardStarter; import org.eclipse.jetty.deploy.bindings.StandardStarter;
@ -110,7 +112,7 @@ public class DeploymentManager extends AbstractLifeCycle
private final List<AppProvider> _providers = new ArrayList<AppProvider>(); private final List<AppProvider> _providers = new ArrayList<AppProvider>();
private final AppLifeCycle _lifecycle = new AppLifeCycle(); private final AppLifeCycle _lifecycle = new AppLifeCycle();
private final List<AppEntry> _apps = new LinkedList<AppEntry>(); private final Queue<AppEntry> _apps = new ConcurrentLinkedQueue<AppEntry>();
private AttributesMap _contextAttributes = new AttributesMap(); private AttributesMap _contextAttributes = new AttributesMap();
private ContextHandlerCollection _contexts; private ContextHandlerCollection _contexts;
private boolean _useStandardBindings = true; private boolean _useStandardBindings = true;
@ -232,25 +234,6 @@ public class DeploymentManager extends AbstractLifeCycle
super.doStop(); super.doStop();
} }
/*
private AppEntry findAppByContextId(String contextId)
{
if (contextId == null)
{
return null;
}
for (AppEntry entry : _apps)
{
if (contextId.equals(entry.app.getContextId()))
{
return entry;
}
}
return null;
}
*/
private AppEntry findAppByOriginId(String originId) private AppEntry findAppByOriginId(String originId)
{ {
if (originId == null) if (originId == null)
@ -405,7 +388,7 @@ public class DeploymentManager extends AbstractLifeCycle
*/ */
public void removeApp(App app) public void removeApp(App app)
{ {
ListIterator<AppEntry> it = _apps.listIterator(); Iterator<AppEntry> it = _apps.iterator();
while (it.hasNext()) while (it.hasNext())
{ {
AppEntry entry = it.next(); AppEntry entry = it.next();