From 41ecd4749c412ef6c5396fa309ab3d4c5f9d3f2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Antonsson?= Date: Thu, 22 Nov 2012 10:59:20 +0100 Subject: [PATCH] Don't replace the active connection with a passive one. See #2654 --- .../akka/remote/testkit/MultiNodeSpec.scala | 2 +- .../akka/remote/netty/NettyRemoteSupport.scala | 16 +++------------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/akka-remote-tests/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala b/akka-remote-tests/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala index 8a076dd683..350c9a3171 100644 --- a/akka-remote-tests/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala +++ b/akka-remote-tests/src/main/scala/akka/remote/testkit/MultiNodeSpec.scala @@ -104,7 +104,7 @@ abstract class MultiNodeConfig { else ConfigFactory.empty val configs = (_nodeConf get myself).toList ::: _commonConf.toList ::: transportConfig :: MultiNodeSpec.nodeConfig :: MultiNodeSpec.baseConfig :: Nil - configs reduce (_ withFallback _) + configs reduceLeft (_ withFallback _) } private[testkit] def deployments(node: RoleName): immutable.Seq[String] = (_deployments get node getOrElse Nil) ++ _allDeploy diff --git a/akka-remote/src/main/scala/akka/remote/netty/NettyRemoteSupport.scala b/akka-remote/src/main/scala/akka/remote/netty/NettyRemoteSupport.scala index 2a067237a7..f9da767c56 100644 --- a/akka-remote/src/main/scala/akka/remote/netty/NettyRemoteSupport.scala +++ b/akka-remote/src/main/scala/akka/remote/netty/NettyRemoteSupport.scala @@ -243,10 +243,10 @@ private[akka] class NettyRemoteTransport(_system: ExtendedActorSystem, _provider } } - def bindClient(remoteAddress: Address, client: RemoteClient, putIfAbsent: Boolean = false): Boolean = { + def bindClient(remoteAddress: Address, client: RemoteClient): Boolean = { clientsLock.writeLock().lock() try { - if (putIfAbsent && remoteClients.contains(remoteAddress)) false + if (remoteClients.contains(remoteAddress)) false else { client.connect() remoteClients.put(remoteAddress, client).foreach(_.shutdown()) @@ -257,17 +257,7 @@ private[akka] class NettyRemoteTransport(_system: ExtendedActorSystem, _provider } } - def unbindClient(remoteAddress: Address): Unit = { - clientsLock.writeLock().lock() - try { - remoteClients foreach { - case (k, v) ⇒ - if (v.isBoundTo(remoteAddress)) { v.shutdown(); remoteClients.remove(k) } - } - } finally { - clientsLock.writeLock().unlock() - } - } + def unbindClient(remoteAddress: Address): Unit = shutdownClientConnection(remoteAddress) def shutdownClientConnection(remoteAddress: Address): Boolean = { clientsLock.writeLock().lock()