diff options
author | Eike Stepper | 2015-03-22 07:46:23 +0000 |
---|---|---|
committer | Eike Stepper | 2015-03-22 10:08:41 +0000 |
commit | 894a4be223fa80add8fdeea0afa3fa6661d0c85e (patch) | |
tree | 5daa838d9652cfdebe3cd1a390af8ea9ab07fe57 /plugins/org.eclipse.emf.cdo.server.net4j/src | |
parent | 0e52aabaf60f2d6834ec52907b971e922fae22ae (diff) | |
download | cdo-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.java | 15 |
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; } |