summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2007-09-10 02:38:12 (EDT)
committerEike Stepper2007-09-10 02:38:12 (EDT)
commit4ee5eedf629e3a5568e3c3f339bf4535ad22adc8 (patch)
tree57b3bc0279590ab5113d0d6411921a15e7eeda60
parent19534652ef6895d5e3b705e72ea472bfdbeb21a0 (diff)
downloadcdo-4ee5eedf629e3a5568e3c3f339bf4535ad22adc8.zip
cdo-4ee5eedf629e3a5568e3c3f339bf4535ad22adc8.tar.gz
cdo-4ee5eedf629e3a5568e3c3f339bf4535ad22adc8.tar.bz2
[202725] Server slower over time.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=202725
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java
index 2a58d73..829dc99 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java
@@ -7,6 +7,7 @@
*
* Contributors:
* Eike Stepper - initial API and implementation
+ * Simon McDuff - maintenance https://bugs.eclipse.org/bugs/show_bug.cgi?id=202725
**************************************************************************/
package org.eclipse.emf.cdo.internal.server;
@@ -88,7 +89,17 @@ public class SessionManager extends Container<ISession> implements ISessionManag
public void sessionClosed(Session session)
{
- fireElementRemovedEvent(session);
+ int sessionID = session.getSessionID();
+ ISession removeSession = null;
+ synchronized (sessions)
+ {
+ removeSession = sessions.remove(sessionID);
+ }
+
+ if (removeSession != null)
+ {
+ fireElementRemovedEvent(session);
+ }
}
public void notifyInvalidation(long timeStamp, CDORevisionImpl[] dirtyObjects, Session excludedSession)