Fixes in NettyTransport, ThrottlerTransportAdapter, removal of Status #2844

- Promise was completed twice erroneously
 - Purged the trait Status from Transport, using failed futures instead
 - using intercept instead of try ... catch in tests
 - added termination hook for UntrustedSpec to shut down second system
 - Fixed threading issues in ThrottlerTransportAdapter
 - Removed nulls from exception constructors
 - replaced Promise.successful(...).future with Future.successful
This commit is contained in:
Endre Sándor Varga 2012-12-20 12:54:43 +01:00
parent 0585651794
commit af5e756508
15 changed files with 160 additions and 190 deletions

View file

@ -189,9 +189,9 @@ class AkkaProtocolSpec extends AkkaSpec("""akka.actor.provider = "akka.remote.Re
"serve the handle as soon as possible if WaitActivity is turned off" in {
val (failureDetector, registry, transport, handle) = collaborators
transport.associateBehavior.pushConstant(Transport.Ready(handle))
transport.associateBehavior.pushConstant(handle)
val statusPromise: Promise[Status] = Promise()
val statusPromise: Promise[AssociationHandle] = Promise()
system.actorOf(Props(new ProtocolStateActor(
localAddress,
@ -203,7 +203,7 @@ class AkkaProtocolSpec extends AkkaSpec("""akka.actor.provider = "akka.remote.Re
failureDetector)))
Await.result(statusPromise.future, 3 seconds) match {
case Transport.Ready(h)
case h: AssociationHandle
h.remoteAddress must be === remoteAkkaAddress
h.localAddress must be === localAkkaAddress
@ -217,9 +217,9 @@ class AkkaProtocolSpec extends AkkaSpec("""akka.actor.provider = "akka.remote.Re
"in outbound mode with WaitActivity delay readiness until activity detected" in {
val (failureDetector, registry, transport, handle) = collaborators
transport.associateBehavior.pushConstant(Transport.Ready(handle))
transport.associateBehavior.pushConstant(handle)
val statusPromise: Promise[Status] = Promise()
val statusPromise: Promise[AssociationHandle] = Promise()
val reader = system.actorOf(Props(new ProtocolStateActor(
localAddress,
@ -242,7 +242,7 @@ class AkkaProtocolSpec extends AkkaSpec("""akka.actor.provider = "akka.remote.Re
reader ! testPayload
Await.result(statusPromise.future, 3 seconds) match {
case Transport.Ready(h)
case h: AssociationHandle
h.remoteAddress must be === remoteAkkaAddress
h.localAddress must be === localAkkaAddress
@ -298,9 +298,9 @@ class AkkaProtocolSpec extends AkkaSpec("""akka.actor.provider = "akka.remote.Re
"send cookie in Associate PDU if configured to do so" in {
val (failureDetector, registry, transport, handle) = collaborators
transport.associateBehavior.pushConstant(Transport.Ready(handle))
transport.associateBehavior.pushConstant(handle)
val statusPromise: Promise[Status] = Promise()
val statusPromise: Promise[AssociationHandle] = Promise()
system.actorOf(Props(new ProtocolStateActor(
localAddress,
@ -316,7 +316,7 @@ class AkkaProtocolSpec extends AkkaSpec("""akka.actor.provider = "akka.remote.Re
failureDetector)))
Await.result(statusPromise.future, 3 seconds) match {
case Transport.Ready(h)
case h: AssociationHandle
h.remoteAddress must be === remoteAkkaAddress
h.localAddress must be === localAkkaAddress
@ -328,9 +328,9 @@ class AkkaProtocolSpec extends AkkaSpec("""akka.actor.provider = "akka.remote.Re
"handle explicit disassociate messages" in {
val (failureDetector, registry, transport, handle) = collaborators
transport.associateBehavior.pushConstant(Transport.Ready(handle))
transport.associateBehavior.pushConstant(handle)
val statusPromise: Promise[Status] = Promise()
val statusPromise: Promise[AssociationHandle] = Promise()
val reader = system.actorOf(Props(new ProtocolStateActor(
localAddress,
@ -342,7 +342,7 @@ class AkkaProtocolSpec extends AkkaSpec("""akka.actor.provider = "akka.remote.Re
failureDetector)))
val wrappedHandle = Await.result(statusPromise.future, 3 seconds) match {
case Transport.Ready(h)
case h: AssociationHandle
h.remoteAddress must be === remoteAkkaAddress
h.localAddress must be === localAkkaAddress
h
@ -361,9 +361,9 @@ class AkkaProtocolSpec extends AkkaSpec("""akka.actor.provider = "akka.remote.Re
"handle transport level disassociations" in {
val (failureDetector, registry, transport, handle) = collaborators
transport.associateBehavior.pushConstant(Transport.Ready(handle))
transport.associateBehavior.pushConstant(handle)
val statusPromise: Promise[Status] = Promise()
val statusPromise: Promise[AssociationHandle] = Promise()
val reader = system.actorOf(Props(new ProtocolStateActor(
localAddress,
@ -380,7 +380,7 @@ class AkkaProtocolSpec extends AkkaSpec("""akka.actor.provider = "akka.remote.Re
reader ! testHeartbeat
val wrappedHandle = Await.result(statusPromise.future, 3 seconds) match {
case Transport.Ready(h)
case h: AssociationHandle
h.remoteAddress must be === remoteAkkaAddress
h.localAddress must be === localAkkaAddress
h
@ -399,9 +399,9 @@ class AkkaProtocolSpec extends AkkaSpec("""akka.actor.provider = "akka.remote.Re
"disassociate when failure detector signals failure" in {
val (failureDetector, registry, transport, handle) = collaborators
transport.associateBehavior.pushConstant(Transport.Ready(handle))
transport.associateBehavior.pushConstant(handle)
val statusPromise: Promise[Status] = Promise()
val statusPromise: Promise[AssociationHandle] = Promise()
system.actorOf(Props(new ProtocolStateActor(
localAddress,
@ -413,7 +413,7 @@ class AkkaProtocolSpec extends AkkaSpec("""akka.actor.provider = "akka.remote.Re
failureDetector)))
val wrappedHandle = Await.result(statusPromise.future, 3 seconds) match {
case Transport.Ready(h)
case h: AssociationHandle
h.remoteAddress must be === remoteAkkaAddress
h.localAddress must be === localAkkaAddress
h
@ -435,9 +435,9 @@ class AkkaProtocolSpec extends AkkaSpec("""akka.actor.provider = "akka.remote.Re
"handle correctly when the handler is registered only after the association is already closed" in {
val (failureDetector, _, transport, handle) = collaborators
transport.associateBehavior.pushConstant(Transport.Ready(handle))
transport.associateBehavior.pushConstant(handle)
val statusPromise: Promise[Status] = Promise()
val statusPromise: Promise[AssociationHandle] = Promise()
val stateActor = system.actorOf(Props(new ProtocolStateActor(
localAddress,
@ -449,7 +449,7 @@ class AkkaProtocolSpec extends AkkaSpec("""akka.actor.provider = "akka.remote.Re
failureDetector)))
val wrappedHandle = Await.result(statusPromise.future, 3 seconds) match {
case Transport.Ready(h)
case h: AssociationHandle
h.remoteAddress must be === remoteAkkaAddress
h.localAddress must be === localAkkaAddress
h