diff --git a/.travis.yml b/.travis.yml index 2a5359f..02768d7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,8 @@ dist: trusty sudo: false group: beta scala: -- 2.12.1 -- 2.11.8 +- 2.12.8 +- 2.11.12 jdk: - oraclejdk8 cache: diff --git a/build.sbt b/build.sbt index a1e3176..6ad4da7 100644 --- a/build.sbt +++ b/build.sbt @@ -2,7 +2,7 @@ import com.typesafe.sbt.SbtScalariform.ScalariformKeys import interplay.ScalaVersions._ import scalariform.formatter.preferences._ -val specsVersion = "3.8.9" +val specsVersion = "4.3.6" val specsBuild = Seq( "specs2-core", "specs2-junit", @@ -27,7 +27,7 @@ lazy val `play-iteratees` = project scalaVersion := scala212, crossScalaVersions := Seq(scala212, scala211), libraryDependencies ++= Seq( - "org.scala-stm" %% "scala-stm" % "0.8" + "org.scala-stm" %% "scala-stm" % "0.9" ) ++ specsBuild.map(_ % Test) ) @@ -39,7 +39,7 @@ lazy val `play-iteratees-reactive-streams` = project scalaVersion := scala212, crossScalaVersions := Seq(scala212, scala211), libraryDependencies ++= Seq( - "org.reactivestreams" % "reactive-streams" % "1.0.0" + "org.reactivestreams" % "reactive-streams" % "1.0.2" ) ++ specsBuild.map(_ % Test) ).dependsOn(`play-iteratees`) diff --git a/iteratees/src/main/scala/play/api/libs/iteratee/Concurrent.scala b/iteratees/src/main/scala/play/api/libs/iteratee/Concurrent.scala index 92e0dd0..0cd767b 100644 --- a/iteratees/src/main/scala/play/api/libs/iteratee/Concurrent.scala +++ b/iteratees/src/main/scala/play/api/libs/iteratee/Concurrent.scala @@ -615,10 +615,8 @@ object Concurrent { Iteratee.flatten(ready.flatMap { _ => val downToZero = atomic { implicit txn => - val ready = commitReady().toMap iteratees.transform(commitReady().map(_._2) ++ _) (interested.length > 0 && iteratees().length <= 0) - } def result(): Iteratee[E, Unit] = if (in == Input.EOF || closeFlag) Done((), Input.Empty) else Cont(step) if (downToZero) Future(interestIsDownToZero())(pec).map(_ => result())(dec) else Future.successful(result()) @@ -628,16 +626,16 @@ object Concurrent { new Hub[E] { - def noCords() = iteratees.single().isEmpty + def noCords(): Boolean = iteratees.single().isEmpty def close(): Unit = { closeFlag = true } - def closed() = closeFlag + def closed(): Boolean = closeFlag val redeemed = Ref(None: Option[Try[Iteratee[E, Unit]]]) - def getPatchCord() = new Enumerator[E] { + def getPatchCord(): Enumerator[E] = new Enumerator[E] { def apply[A](it: Iteratee[E, A]): Future[Iteratee[E, A]] = { val result = Promise[Iteratee[E, A]]() @@ -819,10 +817,10 @@ object Concurrent { } case err => folder(err) }(ec) - toReturn.onFailure { - case e => doneIteratee.failure(e) + toReturn.andThen { + case Failure(e) => doneIteratee.failure(e) + case _ => }(dec) - toReturn } } @@ -848,10 +846,11 @@ object Concurrent { val (consumeRemaining, remaining) = Concurrent.joined[E] result.success((a, remaining)) consumeRemaining - }(dec)).onFailure { - case e => result.tryFailure(e) + }(dec)).onComplete { + case Failure(e) => result.tryFailure(e) + case _ => }(dec) result.future } -} +} \ No newline at end of file diff --git a/iteratees/src/main/scala/play/api/libs/iteratee/Enumerator.scala b/iteratees/src/main/scala/play/api/libs/iteratee/Enumerator.scala index 3032acf..b06d4da 100644 --- a/iteratees/src/main/scala/play/api/libs/iteratee/Enumerator.scala +++ b/iteratees/src/main/scala/play/api/libs/iteratee/Enumerator.scala @@ -529,9 +529,10 @@ object Enumerator { Future.successful(None) }(dec) - next.onFailure { - case reason: Exception => + next.onComplete { + case Failure(reason) => onError(reason.getMessage(), Input.Empty) + case _ => }(dec) next.onComplete {