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:
parent
e6c26b383e
commit
75d9d18b50
|
@ -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
|
||||||
|
|
|
@ -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();
|
||||||
|
|
Loading…
Reference in New Issue