2017-04-02 78 views
2

昨天我正在我的代码库,当服务已行将就木,我跑我的单元测试对我的代码的时候,突然我看到这个的想法日志:IDEA IllegalStateException异常:与科特林运行JUnit测试

Error:Kotlin: [Internal Error] java.lang.IllegalStateException: Service is dying at org.jetbrains.kotlin.daemon.common.CompileService$CallResult$Dying.get(CompileService.kt:60) at org.jetbrains.kotlin.daemon.common.CompileService$CallResult$Dying.get(CompileService.kt:59) at org.jetbrains.kotlin.compilerRunner.JpsKotlinCompilerRunner.compileWithDaemon(JpsKotlinCompilerRunner.kt:127) at org.jetbrains.kotlin.compilerRunner.JpsKotlinCompilerRunner.compileWithDaemonOrFallback(JpsKotlinCompilerRunner.kt:100) at org.jetbrains.kotlin.compilerRunner.JpsKotlinCompilerRunner.compileWithDaemonOrFallback(JpsKotlinCompilerRunner.kt:35) at org.jetbrains.kotlin.compilerRunner.KotlinCompilerRunner.runCompiler(KotlinCompilerRunner.kt:115) at org.jetbrains.kotlin.compilerRunner.JpsKotlinCompilerRunner.runK2JvmCompiler(JpsKotlinCompilerRunner.kt:65) at org.jetbrains.kotlin.jps.build.KotlinBuilder.compileToJvm(KotlinBuilder.kt:740) at org.jetbrains.kotlin.jps.build.KotlinBuilder.doCompileModuleChunk(KotlinBuilder.kt:458) at org.jetbrains.kotlin.jps.build.KotlinBuilder.doBuild(KotlinBuilder.kt:264) at org.jetbrains.kotlin.jps.build.KotlinBuilder.build(KotlinBuilder.kt:181) at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1282) at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:956) at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1028) at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:915) at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:741) at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:387) at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:195) at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:138) at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:295) at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:125) at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler$1.run(BuildMain.java:238) at org.jetbrains.jps.service.impl.SharedThreadPoolImpl$1.run(SharedThreadPoolImpl.java:44) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

这是四月份来自JetBrains的傻瓜笑话吗?

我从来没有见过这个。 killall java和一个IDEA重新启动解决了这个问题,我无法重现这一点。在编译Kotlin代码时,是否有这样的记录(我没有在Google上找到任何匹配)或IDEA中的一次性故障? 这个错误是什么意思?

注意我跑了单元测试是一个简单的试验探索,我认为这是无关紧要的位置:

internal fun fetchAsListWithSiblings(): List<Message<T>> { 
    val first = this 
    var currentMsg = first 
    val result = mutableListOf(currentMsg) 
    while(currentMsg.next.isPresent) { 
     val next = currentMsg.next.get() 
     currentMsg = next 
     result.add(next) 
    } 
    return result 
} 


@Test 
fun shouldFetchSiblingsWhenFetchSiblingsIsCalledWithMultipleSiblings() { 
    val expected = listOf("foo", "bar", "baz") 
    val messages = Message.createMultiple(expected) 

    assertThat(messages.fetchAsListWithSiblings().map { it.payload }).isEqualTo(expected) 
} 
+0

“_这是四月份来自JetBrains的傻瓜笑话吗?”并不是提问的重要部分。 –

回答

5

这是众所周知的问题 - 在并行编译开始的比赛条件。通常重复构建解决它。以下是YouTrack中的相关issue KT-15562。这个问题应该在Kotlin 1.1.2发布中得到解决。