执行程序时出现以下错误,它们是什么意思,我该如何解决?
[SUREFIRE] std/in stream corrupted
java.io.IOException: Command NOOP unexpectedly read Void data with length 4.
at org.apache.maven.surefire.booter.MasterProcessCommand.decode(MasterProcessCommand.java:130)
at org.apache.maven.surefire.booter.CommandReader$CommandRunnable.run(CommandReader.java:391)
at java.base/java.lang.Thread.run(Thread.java:833)
System.exit() or native command error interrupted process checker.
java.lang.IllegalStateException: Cannot use PPID 10756 process information. Going to use NOOP events.
at org.apache.maven.surefire.booter.PpidChecker.checkProcessInfo(PpidChecker.java:155)
at org.apache.maven.surefire.booter.PpidChecker.isProcessAlive(PpidChecker.java:116)
at org.apache.maven.surefire.booter.ForkedBooter$2.run(ForkedBooter.java:214)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
让我们按顺序排列:
从字面上看: I/O 流已损坏。
总的来说,已经好很多了……很明显标准输入/输出流发生了一些事情,但仍然不清楚为什么。
让我们进一步分析:
这里说的是某个 NOOP 团队突然闯入我们的计划并开始读取数据。
这个 NOOP 是谁?
已经更清楚了:
不再是某个不起眼的命令打断了我们平静的存在,而是 I/O 调度器本身决定中断这个 I/O 的会话。
为什么?为什么?谁做的?
做过这个
Surefire Plugin实际上,在这里: org.apache.maven.surefire.booter.ForkedBooter
实际上,这是添加 Noop 侦听器的行
然后是最糟糕的:
JVM_TERMINATOR,它会杀死 JVM
Surefire plugin发送ping到流程,如果他在一定时间内不负责,那么发生的事情就是发生在你身上的事情。这个案例在 Jira 中有一个任务:
https ://issues.apache.org/jira/browse/SUREFIRE-1302
这一切怎么办?
据我所理解:
3.0.0-M4进程检查被禁用。因此,您可以:
mvn test -Dsurefire.forkedProcessTimeoutInSeconds=厘米: