diff --git a/akka-actor/src/main/scala/akka/actor/ActorPath.scala b/akka-actor/src/main/scala/akka/actor/ActorPath.scala index 1bd6c9fa98..bdf81eafa1 100644 --- a/akka-actor/src/main/scala/akka/actor/ActorPath.scala +++ b/akka-actor/src/main/scala/akka/actor/ActorPath.scala @@ -59,7 +59,7 @@ sealed trait ActorPath extends Comparable[ActorPath] with Serializable { /** * Recursively create a descendant’s path by appending all child names. */ - def /(child: Iterable[String]): ActorPath = (this /: child)(_ / _) + def /(child: Iterable[String]): ActorPath = (this /: child)((path, elem) ⇒ if (elem.isEmpty) path else path / elem) /** * ''Java API'': Recursively create a descendant’s path by appending all child names. diff --git a/akka-actor/src/main/scala/akka/actor/ActorRefProvider.scala b/akka-actor/src/main/scala/akka/actor/ActorRefProvider.scala index 44b511a849..f03fae027a 100644 --- a/akka-actor/src/main/scala/akka/actor/ActorRefProvider.scala +++ b/akka-actor/src/main/scala/akka/actor/ActorRefProvider.scala @@ -478,7 +478,7 @@ class LocalActorRefProvider( } else ref.getChild(path.iterator) match { case Nobody ⇒ log.debug("look-up of path sequence '{}' failed", path) - new EmptyLocalActorRef(eventStream, dispatcher, ref.path / path.filterNot(_.isEmpty)) + new EmptyLocalActorRef(eventStream, dispatcher, ref.path / path) case x ⇒ x } diff --git a/akka-actor/src/main/scala/akka/routing/Routing.scala b/akka-actor/src/main/scala/akka/routing/Routing.scala index 7051be1d71..0c02952b3e 100644 --- a/akka-actor/src/main/scala/akka/routing/Routing.scala +++ b/akka-actor/src/main/scala/akka/routing/Routing.scala @@ -179,6 +179,14 @@ case object FromConfig extends RouterConfig { throw new ConfigurationException("router " + ref + " needs external configuration from file (e.g. application.conf)") } +/** + * Java API: Router configuration which has no default, i.e. external configuration is required. + */ +case class FromConfig() extends RouterConfig { + def createRoute(props: Props, actorContext: ActorContext, ref: RoutedActorRef): Route = + throw new ConfigurationException("router " + ref + " needs external configuration from file (e.g. application.conf)") +} + object RoundRobinRouter { def apply(routees: Iterable[ActorRef]) = new RoundRobinRouter(routees = routees map (_.path.toString)) } 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 0fcfcbf209..a70fe6f7ff 100644 --- a/akka-remote/src/main/scala/akka/remote/netty/NettyRemoteSupport.scala +++ b/akka-remote/src/main/scala/akka/remote/netty/NettyRemoteSupport.scala @@ -71,7 +71,7 @@ abstract class RemoteClient private[akka] ( /** * Sends the message across the wire */ - def send(request: RemoteMessageProtocol): Unit = { + private def send(request: RemoteMessageProtocol): Unit = { try { val payload = remoteSupport.createMessageSendEnvelope(request) currentChannel.write(payload).addListener(