Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2015-03-22 07:46:23 +0000
committerEike Stepper2015-03-22 10:08:41 +0000
commit894a4be223fa80add8fdeea0afa3fa6661d0c85e (patch)
tree5daa838d9652cfdebe3cd1a390af8ea9ab07fe57 /plugins/org.eclipse.emf.cdo.server.net4j/src
parent0e52aabaf60f2d6834ec52907b971e922fae22ae (diff)
downloadcdo-894a4be223fa80add8fdeea0afa3fa6661d0c85e.tar.gz
cdo-894a4be223fa80add8fdeea0afa3fa6661d0c85e.tar.xz
cdo-894a4be223fa80add8fdeea0afa3fa6661d0c85e.zip
[462777] Channel not closed after unsuccessful OpenSessionIndication
https://bugs.eclipse.org/bugs/show_bug.cgi?id=462777
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server.net4j/src')
-rw-r--r--plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/OpenSessionIndication.java15
1 files changed, 14 insertions, 1 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/OpenSessionIndication.java b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/OpenSessionIndication.java
index 7645d24432..b3e28d39ef 100644
--- a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/OpenSessionIndication.java
+++ b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/protocol/OpenSessionIndication.java
@@ -25,6 +25,7 @@ import org.eclipse.emf.cdo.spi.server.InternalRepository;
import org.eclipse.emf.cdo.spi.server.InternalSession;
import org.eclipse.emf.cdo.spi.server.InternalSessionManager;
+import org.eclipse.net4j.util.concurrent.ConcurrencyUtil;
import org.eclipse.net4j.util.om.monitor.OMMonitor;
import org.eclipse.net4j.util.om.monitor.OMMonitor.Async;
import org.eclipse.net4j.util.om.trace.ContextTracer;
@@ -118,7 +119,8 @@ public class OpenSessionIndication extends CDOServerIndicationWithMonitoring
try
{
- CDOServerProtocol protocol = getProtocol();
+ final CDOServerProtocol protocol = getProtocol();
+
IRepositoryProvider repositoryProvider = protocol.getRepositoryProvider();
repository = (InternalRepository)repositoryProvider.getRepository(repositoryName);
if (repository == null)
@@ -135,6 +137,17 @@ public class OpenSessionIndication extends CDOServerIndicationWithMonitoring
{
// Skip response because the user has canceled the authentication
out.writeInt(0);
+ flush();
+
+ protocol.getExecutorService().submit(new Runnable()
+ {
+ public void run()
+ {
+ ConcurrencyUtil.sleep(500);
+ protocol.getChannel().close();
+ }
+ });
+
return;
}

Back to the top