Compile kotlinx-coroutines-core under JDK1.6
diff --git a/kotlinx-coroutines-core/pom.xml b/kotlinx-coroutines-core/pom.xml
index 6be5542..9bcb4e5 100644
--- a/kotlinx-coroutines-core/pom.xml
+++ b/kotlinx-coroutines-core/pom.xml
@@ -14,8 +14,22 @@
 
     <name>Kotlin coroutines core library</name>
 
+    <properties>
+        <kotlin.compiler.jdkHome>${env.JDK_16}</kotlin.compiler.jdkHome>
+    </properties>
+
     <build>
         <sourceDirectory>src/main/kotlin</sourceDirectory>
         <testSourceDirectory>src/test/kotlin</testSourceDirectory>
+
+        <plugins>
+            <plugin>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <forkMode>once</forkMode>
+                    <jvm>${env.JDK_16}/bin/java</jvm>
+                </configuration>
+            </plugin>
+        </plugins>
     </build>
 </project>
diff --git a/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/CommonPool.kt b/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/CommonPool.kt
index d91ac74..f023cf7 100644
--- a/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/CommonPool.kt
+++ b/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/CommonPool.kt
@@ -2,15 +2,14 @@
 
 import java.util.concurrent.Executor
 import java.util.concurrent.Executors
-import java.util.concurrent.ForkJoinPool
 import java.util.concurrent.atomic.AtomicInteger
 import kotlin.coroutines.CoroutineContext
 
 /**
  * Represents common pool of shared threads as coroutine dispatcher for compute-intensive tasks.
- * It uses [ForkJoinPool] when available, which implements efficient work-stealing algorithm for its queues, so every
+ * It uses [java.util.concurrent.ForkJoinPool] when available, which implements efficient work-stealing algorithm for its queues, so every
  * coroutine resumption is dispatched as a separate task even when it already executes inside the pool.
- * When available, it wraps [ForkJoinPool.commonPool] and provides a similar shared pool where not.
+ * When available, it wraps `ForkJoinPool.commonPool` and provides a similar shared pool where not.
  */
 object CommonPool : CoroutineDispatcher() {
     private val pool: Executor = findPool()
diff --git a/kotlinx-coroutines-core/src/test/kotlin/examples/log.kt b/kotlinx-coroutines-core/src/test/kotlin/examples/log.kt
index 945473f..1f243e6 100644
--- a/kotlinx-coroutines-core/src/test/kotlin/examples/log.kt
+++ b/kotlinx-coroutines-core/src/test/kotlin/examples/log.kt
@@ -1,5 +1,6 @@
 package examples
 
-import java.time.Instant
+import java.text.SimpleDateFormat
+import java.util.*
 
-fun log(msg: String) = println("${Instant.now()} [${Thread.currentThread().name}] $msg")
\ No newline at end of file
+fun log(msg: String) = println("${SimpleDateFormat("YYYYMMdd-HHmmss.sss").format(Date())} [${Thread.currentThread().name}] $msg")
\ No newline at end of file
diff --git a/kotlinx-coroutines-javafx/src/test/kotlin/examples/FxExampleApp.kt b/kotlinx-coroutines-javafx/src/test/kotlin/examples/FxExampleApp.kt
index 5c2784c..f96ae0b 100644
--- a/kotlinx-coroutines-javafx/src/test/kotlin/examples/FxExampleApp.kt
+++ b/kotlinx-coroutines-javafx/src/test/kotlin/examples/FxExampleApp.kt
@@ -15,14 +15,14 @@
 import kotlinx.coroutines.experimental.delay
 import kotlinx.coroutines.experimental.javafx.JavaFx
 import kotlinx.coroutines.experimental.launch
-import java.time.Instant
+import java.text.SimpleDateFormat
 import java.util.*
 
 fun main(args: Array<String>) {
     Application.launch(FxTestApp::class.java, *args)
 }
 
-fun log(msg: String) = println("${Instant.now()} [${Thread.currentThread().name}] $msg")
+fun log(msg: String) = println("${SimpleDateFormat("YYYYMMdd-HHmmss.sss").format(Date())} [${Thread.currentThread().name}] $msg")
 
 class FxTestApp : Application() {
     val buttons = FlowPane().apply {
diff --git a/kotlinx-coroutines-jdk8/src/test/kotlin/examples/log.kt b/kotlinx-coroutines-jdk8/src/test/kotlin/examples/log.kt
index 945473f..1f243e6 100644
--- a/kotlinx-coroutines-jdk8/src/test/kotlin/examples/log.kt
+++ b/kotlinx-coroutines-jdk8/src/test/kotlin/examples/log.kt
@@ -1,5 +1,6 @@
 package examples
 
-import java.time.Instant
+import java.text.SimpleDateFormat
+import java.util.*
 
-fun log(msg: String) = println("${Instant.now()} [${Thread.currentThread().name}] $msg")
\ No newline at end of file
+fun log(msg: String) = println("${SimpleDateFormat("YYYYMMdd-HHmmss.sss").format(Date())} [${Thread.currentThread().name}] $msg")
\ No newline at end of file
diff --git a/kotlinx-coroutines-nio/src/test/kotlin/examples/log.kt b/kotlinx-coroutines-nio/src/test/kotlin/examples/log.kt
index 945473f..1f243e6 100644
--- a/kotlinx-coroutines-nio/src/test/kotlin/examples/log.kt
+++ b/kotlinx-coroutines-nio/src/test/kotlin/examples/log.kt
@@ -1,5 +1,6 @@
 package examples
 
-import java.time.Instant
+import java.text.SimpleDateFormat
+import java.util.*
 
-fun log(msg: String) = println("${Instant.now()} [${Thread.currentThread().name}] $msg")
\ No newline at end of file
+fun log(msg: String) = println("${SimpleDateFormat("YYYYMMdd-HHmmss.sss").format(Date())} [${Thread.currentThread().name}] $msg")
\ No newline at end of file
diff --git a/kotlinx-coroutines-swing/src/test/kotlin/examples/swing-example.kt b/kotlinx-coroutines-swing/src/test/kotlin/examples/swing-example.kt
index bd30a79..1f1dc2f 100644
--- a/kotlinx-coroutines-swing/src/test/kotlin/examples/swing-example.kt
+++ b/kotlinx-coroutines-swing/src/test/kotlin/examples/swing-example.kt
@@ -2,11 +2,12 @@
 
 import kotlinx.coroutines.experimental.runBlocking
 import kotlinx.coroutines.experimental.swing.Swing
-import java.time.Instant
+import java.text.SimpleDateFormat
+import java.util.*
 import java.util.concurrent.ForkJoinPool
 import kotlin.coroutines.suspendCoroutine
 
-fun log(msg: String) = println("${Instant.now()} [${Thread.currentThread().name}] $msg")
+fun log(msg: String) = println("${SimpleDateFormat("YYYYMMdd-HHmmss.sss").format(Date())} [${Thread.currentThread().name}] $msg")
 
 suspend fun makeRequest(): String {
     log("Making request...")