diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-01-27 22:36:11 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-01-27 22:36:11 -0800 |
commit | 02963d724c512251ce66502226408091686989ee (patch) | |
tree | c4cd2e4337a4986b48e15dc8bc1e80c11a2b27e7 /test | |
parent | 1f24a11d3c3d450f8d27dd34952b8912ed9ced12 (diff) | |
parent | 262d7ec854ee32327188c292b54dd94ba2c7010c (diff) | |
download | scala-02963d724c512251ce66502226408091686989ee.tar.gz scala-02963d724c512251ce66502226408091686989ee.tar.bz2 scala-02963d724c512251ce66502226408091686989ee.zip |
Merge pull request #1941 from phaller/issue/6932-futures-internal-callbacks
SI-6932 StackOverflowError in chained Future.flatMap calls
Diffstat (limited to 'test')
-rw-r--r-- | test/files/jvm/scala-concurrent-tck.scala | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/test/files/jvm/scala-concurrent-tck.scala b/test/files/jvm/scala-concurrent-tck.scala index b529bca38a..b2b4183564 100644 --- a/test/files/jvm/scala-concurrent-tck.scala +++ b/test/files/jvm/scala-concurrent-tck.scala @@ -134,6 +134,12 @@ trait FutureCallbacks extends TestBase { assert(false) } } + + def testThatNestedCallbacksDoNotYieldStackOverflow(): Unit = { + val promise = Promise[Int] + (0 to 10000).map(Future(_)).foldLeft(promise.future)((f1, f2) => f2.flatMap(i => f1)) + promise.success(-1) + } testOnSuccess() testOnSuccessWhenCompleted() @@ -143,6 +149,7 @@ trait FutureCallbacks extends TestBase { // testOnFailureWhenSpecialThrowable(6, new scala.util.control.ControlThrowable { }) //TODO: this test is currently problematic, because NonFatal does not match InterruptedException //testOnFailureWhenSpecialThrowable(7, new InterruptedException) + testThatNestedCallbacksDoNotYieldStackOverflow() testOnFailureWhenTimeoutException() } |