diff --git a/akka-core/src/main/scala/actor/Actor.scala b/akka-core/src/main/scala/actor/Actor.scala index d3e6192365..976e451216 100644 --- a/akka-core/src/main/scala/actor/Actor.scala +++ b/akka-core/src/main/scala/actor/Actor.scala @@ -491,10 +491,4 @@ trait Actor extends Logging { case UnlinkAndStop(child) => self.unlink(child); child.stop case Kill => throw new ActorKilledException("Actor [" + toString + "] was killed by a Kill message") } - - override def hashCode: Int = self.hashCode - - override def equals(that: Any): Boolean = self.equals(that) - - override def toString = self.toString } diff --git a/akka-core/src/main/scala/actor/ActorRef.scala b/akka-core/src/main/scala/actor/ActorRef.scala index 8951ec1ad9..3a1b315a79 100644 --- a/akka-core/src/main/scala/actor/ActorRef.scala +++ b/akka-core/src/main/scala/actor/ActorRef.scala @@ -706,6 +706,9 @@ sealed class LocalActorRef private[akka]( lifeCycle = __lifeCycle _supervisor = __supervisor hotswap = __hotswap + actorSelfFields._1.set(actor, this) + actorSelfFields._2.set(actor, Some(this)) + actorSelfFields._3.set(actor, Some(this)) ActorRegistry.register(this) } @@ -1149,7 +1152,7 @@ sealed class LocalActorRef private[akka]( /** * Callback for the dispatcher. This is the ingle entry point to the user Actor implementation. */ - protected[akka] def invoke(messageHandle: MessageInvocation): Unit = actor.synchronized { + protected[akka] def invoke(messageHandle: MessageInvocation): Unit = actor.synchronized { if (isShutdown) { Actor.log.warning("Actor [%s] is shut down, ignoring message [%s]", toString, messageHandle) return diff --git a/akka-core/src/main/scala/dispatch/ExecutorBasedEventDrivenDispatcher.scala b/akka-core/src/main/scala/dispatch/ExecutorBasedEventDrivenDispatcher.scala index ccbb9edc94..9120e34bdf 100644 --- a/akka-core/src/main/scala/dispatch/ExecutorBasedEventDrivenDispatcher.scala +++ b/akka-core/src/main/scala/dispatch/ExecutorBasedEventDrivenDispatcher.scala @@ -86,8 +86,7 @@ class ExecutorBasedEventDrivenDispatcher(_name: String, throughput: Int = Dispat finishedBeforeMailboxEmpty = processMailbox(receiver) } finally { lock.unlock - if (finishedBeforeMailboxEmpty) - dispatch(receiver) + if (finishedBeforeMailboxEmpty) dispatch(receiver) } } } while ((lockAcquiredOnce && !finishedBeforeMailboxEmpty && !mailbox.isEmpty)) diff --git a/akka-core/src/test/java/ProtobufProtocol.proto b/akka-core/src/test/protocol/ProtobufProtocol.proto similarity index 75% rename from akka-core/src/test/java/ProtobufProtocol.proto rename to akka-core/src/test/protocol/ProtobufProtocol.proto index f4b146506c..4014652bc3 100644 --- a/akka-core/src/test/java/ProtobufProtocol.proto +++ b/akka-core/src/test/protocol/ProtobufProtocol.proto @@ -6,8 +6,8 @@ package se.scalablesolutions.akka.actor; /* Compile with: - cd ./akka-core/src/test/java - protoc ProtobufProtocol.proto --java_out . + cd ./akka-core/src/test/protocol + protoc ProtobufProtocol.proto --java_out ../java */ message ProtobufPOJO { diff --git a/akka-core/src/test/scala/SerializableActorSpec.scala b/akka-core/src/test/scala/SerializableActorSpec.scala index 13f018c6a0..b9303e4fed 100644 --- a/akka-core/src/test/scala/SerializableActorSpec.scala +++ b/akka-core/src/test/scala/SerializableActorSpec.scala @@ -22,10 +22,10 @@ class SerializableActorSpec extends (actor1 !! "hello").getOrElse("_") should equal("world") val bytes = actor1.toBinary - -// val actor2 = serializer.fromBinary(bytes, Some(classOf[JavaSerializableTestActor])).asInstanceOf[Actor] -// (actor2 !! "hello").getOrElse("_") should equal("world") - true should equal(true) + val actor2 = ActorRef.fromBinaryToLocalActorRef(bytes) + + actor2.start + (actor2 !! "hello").getOrElse("_") should equal("world") } } }