使用 Arrays.fill 时崩溃

Crash When Using Arrays.fill

我正在做一个学校项目,我在其中用数据填充两个小数组。为此,我使用了 java.util 的 Arrays.fill 方法,该方法在大约十秒后会导致 java 完全崩溃。

一旦我通过注释掉代码直到它起作用来查明问题,修复起来很简单,但我想知道究竟是什么导致了 java 崩溃。

我试图在一个较小的项目中重现崩溃,但我无法做到。因此,我在其中包含了一个包含该项目的存档。

我是 运行 lubuntu 14.04.2 x86,崩溃发生在 Oracle JDK 7.76 和 Oracle JDK 8.40 下。

程序失败并显示此消息,输出文件包含在存档中:

# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0xb6dd9d37, pid=4458, tid=2236009280
#
# JRE version: Java(TM) SE Runtime Environment (8.0_40-b25) (build 1.8.0_40-b25)
# Java VM: Java HotSpot(TM) Server VM (25.40-b25 mixed mode linux-x86 )
# Problematic frame:
# V  [libjvm.so+0x653d37]  PhaseIdealLoop::match_fill_loop(IdealLoopTree*, Node*&, Node*&, Node*&, Node*&)+0x257
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp

下载 link 到存档: https://www.dropbox.com/s/wmv8xe82cwn15dg/JavaCrash.tar.gz?dl=1

那么,有人可以解释一下这是怎么回事吗?是我的错,还是我无法控制的事情?

(编辑见评论)这原来是 JVM 8 版本中的一个错误。 40,仅在 3 天前发布。 DCom 库只是一个纯粹的 Java Swing 包装器。

在 Mac OS JVM 6 上,没有崩溃;在装有 JVM 6 的同一台 Linux 机器上,没有崩溃。它发生了。 OP 将尝试报告。