Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/ChannelMultiplexer.java')
-rw-r--r--plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/ChannelMultiplexer.java26
1 files changed, 18 insertions, 8 deletions
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/ChannelMultiplexer.java b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/ChannelMultiplexer.java
index 0558cdbfd5..2e879a345a 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/ChannelMultiplexer.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/ChannelMultiplexer.java
@@ -47,7 +47,7 @@ import java.util.concurrent.ConcurrentMap;
* @author Eike Stepper
* @since 2.0
*/
-public abstract class ChannelMultiplexer extends Container<IChannel>implements InternalChannelMultiplexer
+public abstract class ChannelMultiplexer extends Container<IChannel> implements InternalChannelMultiplexer
{
private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_CONNECTOR, ChannelMultiplexer.class);
@@ -193,14 +193,24 @@ public abstract class ChannelMultiplexer extends Container<IChannel>implements I
*/
public InternalChannel inverseOpenChannel(short channelID, String protocolID, int protocolVersion)
{
- IProtocol<?> protocol = createProtocol(protocolID, null);
- ProtocolVersionException.checkVersion(protocol, protocolVersion);
+ CONTEXT_MULTIPLEXER.set(this);
- InternalChannel channel = createChannel();
- initChannel(channel, protocol);
- channel.setID(channelID);
- addChannel(channel);
- return channel;
+ try
+ {
+ IProtocol<?> protocol = createProtocol(protocolID, null);
+ ProtocolVersionException.checkVersion(protocol, protocolVersion);
+
+ InternalChannel channel = createChannel();
+ initChannel(channel, protocol);
+ channel.setID(channelID);
+
+ addChannel(channel);
+ return channel;
+ }
+ finally
+ {
+ CONTEXT_MULTIPLEXER.remove();
+ }
}
public void closeChannel(InternalChannel channel) throws ChannelException

Back to the top