Merge branch 'master' of git@github.com:jboner/akka
This commit is contained in:
commit
2a9af35b4d
2 changed files with 23 additions and 24 deletions
|
|
@ -972,12 +972,11 @@ class LocalActorRef private[akka] (
|
|||
if (future.isDefined) future.get
|
||||
else throw new IllegalActorStateException("Expected a future from remote call to actor " + toString)
|
||||
} else {
|
||||
val future = if (senderFuture.isDefined) senderFuture.get
|
||||
else new DefaultCompletableFuture[T](timeout)
|
||||
val future = if (senderFuture.isDefined) senderFuture else Some(new DefaultCompletableFuture[T](timeout))
|
||||
val invocation = new MessageInvocation(
|
||||
this, message, senderOption, Some(future.asInstanceOf[CompletableFuture[Any]]), transactionSet.get)
|
||||
this, message, senderOption, future.asInstanceOf[Some[CompletableFuture[Any]]], transactionSet.get)
|
||||
dispatcher dispatchMessage invocation
|
||||
future
|
||||
future.get
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1114,10 +1113,10 @@ class LocalActorRef private[akka] (
|
|||
true //Done
|
||||
}
|
||||
|
||||
if (!success)
|
||||
attemptRestart
|
||||
if (success)
|
||||
() //Alles gut
|
||||
else
|
||||
() //Yay!
|
||||
attemptRestart
|
||||
}
|
||||
|
||||
attemptRestart() //Tailrecursion
|
||||
|
|
@ -1147,12 +1146,9 @@ class LocalActorRef private[akka] (
|
|||
// ========= PRIVATE FUNCTIONS =========
|
||||
|
||||
private[this] def newActor: Actor = {
|
||||
Actor.actorRefInCreation.withValue(Some(this)) {
|
||||
val actor = actorFactory()
|
||||
if (actor eq null) throw new ActorInitializationException(
|
||||
"Actor instance passed to ActorRef can not be 'null'")
|
||||
actor
|
||||
}
|
||||
val a = Actor.actorRefInCreation.withValue(Some(this)) { actorFactory() }
|
||||
if (a eq null) throw new ActorInitializationException("Actor instance passed to ActorRef can not be 'null'")
|
||||
a
|
||||
}
|
||||
|
||||
private def joinTransaction(message: Any) = if (isTransactionSetInScope) {
|
||||
|
|
@ -1590,7 +1586,7 @@ trait ScalaActorRef extends ActorRefShared { ref: ActorRef =>
|
|||
if (isRunning) {
|
||||
if (sender.get.senderFuture.isDefined) postMessageToMailboxAndCreateFutureResultWithTimeout(
|
||||
message, timeout, sender.get.sender, sender.get.senderFuture)
|
||||
else if (sender.get.sender.isDefined) postMessageToMailbox(message, Some(sender.get.sender.get))
|
||||
else if (sender.get.sender.isDefined) postMessageToMailbox(message, sender.get.sender)
|
||||
else throw new IllegalActorStateException("Can't forward message when initial sender is not an actor")
|
||||
} else throw new ActorInitializationException("Actor has not been started, you need to invoke 'actor.start' before using it")
|
||||
}
|
||||
|
|
@ -1619,7 +1615,8 @@ trait ScalaActorRef extends ActorRefShared { ref: ActorRef =>
|
|||
senderFuture.get completeWithResult message
|
||||
true
|
||||
} else if (sender.isDefined) {
|
||||
sender.get ! message
|
||||
//TODO: optimize away this allocation, perhaps by having implicit self: Option[ActorRef] in signature
|
||||
sender.get.!(message)(Some(this))
|
||||
true
|
||||
} else false
|
||||
}
|
||||
|
|
@ -1634,9 +1631,10 @@ trait ScalaActorRef extends ActorRefShared { ref: ActorRef =>
|
|||
def !(msg: Any) = future completeWithResult msg
|
||||
}
|
||||
} else if (sender.isDefined) {
|
||||
val someSelf = Some(this)
|
||||
new Channel[Any] {
|
||||
val client = sender.get
|
||||
def !(msg: Any) = client ! msg
|
||||
def !(msg: Any) = client.!(msg)(someSelf)
|
||||
}
|
||||
} else throw new IllegalActorStateException("No channel available")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,9 +21,10 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) {
|
|||
"-Xmigration",
|
||||
"-Xcheckinit",
|
||||
"-Xstrict-warnings",
|
||||
// "-optimise", //Uncomment this for release compile
|
||||
"-Xwarninit",
|
||||
"-encoding", "utf8")
|
||||
.map(x => CompileOption(x))
|
||||
.map(CompileOption(_))
|
||||
override def javaCompileOptions = JavaCompileOption("-Xlint:unchecked") :: super.javaCompileOptions.toList
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------
|
||||
|
|
@ -248,6 +249,8 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) {
|
|||
|
||||
lazy val hbase_core = "org.apache.hbase" % "hbase-core" % "0.20.6" % "compile"
|
||||
|
||||
lazy val google_coll = "com.google.collections" % "google-collections" % "1.0" % "compile"
|
||||
|
||||
//Riak PB Client
|
||||
lazy val riak_pb_client = "com.trifork" % "riak-java-pb-client" % "1.0-for-akka-by-ticktock" % "compile"
|
||||
|
||||
|
|
@ -256,8 +259,6 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) {
|
|||
lazy val camel_spring = "org.apache.camel" % "camel-spring" % CAMEL_VERSION % "test"
|
||||
lazy val cassandra_clhm = "org.apache.cassandra" % "clhm-production" % CASSANDRA_VERSION % "test"
|
||||
lazy val commons_coll = "commons-collections" % "commons-collections" % "3.2.1" % "test"
|
||||
lazy val google_coll = "com.google.collections" % "google-collections" % "1.0" % "test"
|
||||
lazy val google_coll_compile = "com.google.collections" % "google-collections" % "1.0" % "compile"
|
||||
|
||||
lazy val high_scale = "org.apache.cassandra" % "high-scale-lib" % CASSANDRA_VERSION % "test"
|
||||
lazy val testJetty = "org.eclipse.jetty" % "jetty-server" % JETTY_VERSION % "test"
|
||||
|
|
@ -275,10 +276,10 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) {
|
|||
lazy val jetty_mortbay = "org.mortbay.jetty" % "jetty" % "6.1.14" % "test"
|
||||
|
||||
//voldemort testing
|
||||
lazy val jdom = "org.jdom" % "jdom" % "1.1" % "test"
|
||||
lazy val vold_jetty = "org.mortbay.jetty" % "jetty" % "6.1.18" % "test"
|
||||
lazy val velocity = "org.apache.velocity" % "velocity" % "1.6.2" % "test"
|
||||
lazy val dbcp = "commons-dbcp" % "commons-dbcp" % "1.2.2" % "test"
|
||||
lazy val jdom = "org.jdom" % "jdom" % "1.1" % "test"
|
||||
lazy val vold_jetty = "org.mortbay.jetty" % "jetty" % "6.1.18" % "test"
|
||||
lazy val velocity = "org.apache.velocity" % "velocity" % "1.6.2" % "test"
|
||||
lazy val dbcp = "commons-dbcp" % "commons-dbcp" % "1.2.2" % "test"
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------
|
||||
|
|
@ -630,7 +631,7 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) {
|
|||
|
||||
//testing
|
||||
val scalatest = Dependencies.scalatest
|
||||
val google_coll_compile = Dependencies.google_coll_compile
|
||||
val google_coll = Dependencies.google_coll
|
||||
val jdom = Dependencies.jdom
|
||||
val jetty = Dependencies.vold_jetty
|
||||
val velocity = Dependencies.velocity
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue