diff --git a/akka-core/src/main/scala/actor/BootableActorLoaderService.scala b/akka-core/src/main/scala/actor/BootableActorLoaderService.scala index 5c80620d80..32aeb69303 100644 --- a/akka-core/src/main/scala/actor/BootableActorLoaderService.scala +++ b/akka-core/src/main/scala/actor/BootableActorLoaderService.scala @@ -28,7 +28,7 @@ trait BootableActorLoaderService extends Bootable with Logging { log.error("Could not find a deploy directory at [%s]", DEPLOY) System.exit(-1) } - val toDeploy = for (f <- DEPLOY_DIR.listFiles().toArray.toList.asInstanceOf[List[File]]) yield f.toURL + val toDeploy = for (f <- DEPLOY_DIR.listFiles().toArray.toList.asInstanceOf[List[File]]) yield f.toURI.toURL log.info("Deploying applications from [%s]: [%s]", DEPLOY, toDeploy.toArray.toList) new URLClassLoader(toDeploy.toArray, getClass.getClassLoader) } else getClass.getClassLoader) diff --git a/akka-core/src/main/scala/actor/Supervisor.scala b/akka-core/src/main/scala/actor/Supervisor.scala index bcb7223ddd..964fc8d1ac 100644 --- a/akka-core/src/main/scala/actor/Supervisor.scala +++ b/akka-core/src/main/scala/actor/Supervisor.scala @@ -89,8 +89,8 @@ sealed class Supervisor private[akka] (handler: FaultHandlingStrategy, trapExcep // Cheating, should really go through the dispatcher rather than direct access to a CHM def getInstance[T](clazz: Class[T]): List[T] = actors.get(clazz.getName).asInstanceOf[List[T]] - def getComponentInterfaces: List[Class[_]] = List.flatten( - actors.values.toArray.toList.asInstanceOf[List[List[AnyRef]]]).map(_.getClass) + def getComponentInterfaces: List[Class[_]] = + actors.values.toArray.toList.asInstanceOf[List[List[AnyRef]]].flatten.map(_.getClass) def isDefined(clazz: Class[_]): Boolean = actors.containsKey(clazz.getName) diff --git a/akka-core/src/main/scala/config/ConfiguratorRepository.scala b/akka-core/src/main/scala/config/ConfiguratorRepository.scala index 097259164b..8ddc16f9fe 100644 --- a/akka-core/src/main/scala/config/ConfiguratorRepository.scala +++ b/akka-core/src/main/scala/config/ConfiguratorRepository.scala @@ -13,7 +13,7 @@ object ConfiguratorRepository extends Logging { private val configuration = new HashSet[Configurator] def registerConfigurator(conf: Configurator) = synchronized { - configuration + conf + configuration += conf } def getConfigurators: List[Configurator] = synchronized { diff --git a/akka-core/src/main/scala/remote/Cluster.scala b/akka-core/src/main/scala/remote/Cluster.scala index 4a1d6012a7..a5a93ce67e 100644 --- a/akka-core/src/main/scala/remote/Cluster.scala +++ b/akka-core/src/main/scala/remote/Cluster.scala @@ -166,7 +166,7 @@ abstract class BasicClusterActor extends ClusterActor { case DeregisterLocalNode(s) => { log debug ("DeregisterLocalNode: %s", s) - local = Node(local.endpoints - s) + local = Node(local.endpoints.filterNot(_ == s)) broadcast(Papers(local.endpoints)) } } @@ -201,12 +201,12 @@ abstract class BasicClusterActor extends ClusterActor { * Applies the given PartialFunction to all known RemoteAddresses */ def lookup[T](handleRemoteAddress: PartialFunction[RemoteAddress, T]): Option[T] = - remotes.values.toList.flatMap(_.endpoints).find(handleRemoteAddress isDefinedAt _).map(handleRemoteAddress) + remotes.valuesIterator.toList.flatMap(_.endpoints).find(handleRemoteAddress isDefinedAt _).map(handleRemoteAddress) /** * Applies the given function to all remote addresses known */ - def foreach(f: (RemoteAddress) => Unit): Unit = remotes.values.toList.flatMap(_.endpoints).foreach(f) + def foreach(f: (RemoteAddress) => Unit): Unit = remotes.valuesIterator.toList.flatMap(_.endpoints).foreach(f) /** * Registers a local endpoint diff --git a/akka-core/src/main/scala/remote/RemoteClient.scala b/akka-core/src/main/scala/remote/RemoteClient.scala index 2c54bac80d..44ca58a051 100644 --- a/akka-core/src/main/scala/remote/RemoteClient.scala +++ b/akka-core/src/main/scala/remote/RemoteClient.scala @@ -127,7 +127,7 @@ object RemoteClient extends Logging { if (remoteClients.contains(hash)) { val client = remoteClients(hash) client.shutdown - remoteClients - hash + remoteClients -= hash } } @@ -140,13 +140,13 @@ object RemoteClient extends Logging { } private[akka] def register(hostname: String, port: Int, uuid: String) = synchronized { - actorsFor(RemoteServer.Address(hostname, port)) + uuid + actorsFor(RemoteServer.Address(hostname, port)) += uuid } // TODO: add RemoteClient.unregister for ActiveObject, but first need a @shutdown callback private[akka] def unregister(hostname: String, port: Int, uuid: String) = synchronized { val set = actorsFor(RemoteServer.Address(hostname, port)) - set - uuid + set -= uuid if (set.isEmpty) shutdownClientFor(new InetSocketAddress(hostname, port)) } @@ -267,7 +267,7 @@ class RemoteClientPipelineFactory(name: String, /** * @author Jonas Bonér */ -@ChannelPipelineCoverage(value = "all") +@ChannelHandler.Sharable class RemoteClientHandler(val name: String, val futures: ConcurrentMap[Long, CompletableFuture], val supervisors: ConcurrentMap[String, Actor], diff --git a/akka-core/src/main/scala/remote/RemoteServer.scala b/akka-core/src/main/scala/remote/RemoteServer.scala index 05c069c9e2..4a2c96c5fe 100644 --- a/akka-core/src/main/scala/remote/RemoteServer.scala +++ b/akka-core/src/main/scala/remote/RemoteServer.scala @@ -244,7 +244,7 @@ class RemoteServerPipelineFactory( /** * @author Jonas Bonér */ -@ChannelPipelineCoverage(value = "all") +@ChannelHandler.Sharable class RemoteServerHandler( val name: String, val openChannels: ChannelGroup, diff --git a/akka-core/src/main/scala/stm/Transaction.scala b/akka-core/src/main/scala/stm/Transaction.scala index 72f97a2d0b..4bcb8f5a26 100644 --- a/akka-core/src/main/scala/stm/Transaction.scala +++ b/akka-core/src/main/scala/stm/Transaction.scala @@ -208,7 +208,7 @@ object Transaction extends TransactionManagement with Logging { def commit = synchronized { log.trace("Committing transaction %s", toString) atomic0 { - persistentStateMap.values.foreach(_.commit) + persistentStateMap.valuesIterator.foreach(_.commit) } status = TransactionStatus.Completed } diff --git a/akka-core/src/main/scala/stm/TransactionalState.scala b/akka-core/src/main/scala/stm/TransactionalState.scala index 426474f791..a8b5da83b9 100644 --- a/akka-core/src/main/scala/stm/TransactionalState.scala +++ b/akka-core/src/main/scala/stm/TransactionalState.scala @@ -152,7 +152,7 @@ class TransactionalRef[T] extends Transactional { def elements: Iterator[T] = { ensureIsInTransaction - if (isEmpty) Iterator.empty else Iterator.fromValues(ref.get) + if (isEmpty) Iterator.empty else Iterator(ref.get) } def toList: List[T] = { @@ -227,7 +227,7 @@ class TransactionalMap[K, V] extends Transactional with scala.collection.mutable def iterator = ref.get.get.iterator - override def elements: Iterator[(K, V)] = ref.get.get.elements + override def elements: Iterator[(K, V)] = ref.get.get.iterator override def contains(key: K): Boolean = ref.get.get.contains(key) @@ -253,7 +253,7 @@ object TransactionalVector { * * @author Jonas Bonér */ -class TransactionalVector[T] extends Transactional with RandomAccessSeq[T] { +class TransactionalVector[T] extends Transactional with IndexedSeq[T] { val uuid = UUID.newUuid.toString private[this] val ref = TransactionalRef[Vector[T]] diff --git a/akka-core/src/main/scala/stm/Vector.scala b/akka-core/src/main/scala/stm/Vector.scala index 4eec750591..b76281b909 100644 --- a/akka-core/src/main/scala/stm/Vector.scala +++ b/akka-core/src/main/scala/stm/Vector.scala @@ -44,7 +44,7 @@ import Vector._ */ @serializable class Vector[+T] private (val length: Int, shift: Int, root: Array[AnyRef], tail: Array[AnyRef]) - extends RandomAccessSeq[T] with PersistentDataStructure { outer => + extends IndexedSeq[T] with PersistentDataStructure { outer => private val tailOff = length - tail.length /*