Compilation hangs for a class with field double d = 2.2250738585072012e-308

前端 未结 4 1167
暖寄归人
暖寄归人 2020-12-20 18:02

I have come across an interesting situation. A coworker committed some changes, which would not compile on my machine neither from the IDE (Eclipse) nor from a command line

相关标签:
4条回答
  • 2020-12-20 18:41

    Oracle has released a hot fix which can be found here:

    http://www.oracle.com/technetwork/java/javase/fpupdater-tool-readme-305936.html

    The hotfix will work for java 1.4, 1.5, and 1.6.

    0 讨论(0)
  • 2020-12-20 18:45

    This is an open bug for over 10 years. Bad Sun.

    The fact that Java systems haven't been attacked and dead in masses proves that there are really very few naughty people on the earth.

    0 讨论(0)
  • 2020-12-20 18:47

    This is a known issue which was in news a couple of days back. More info here.

    0 讨论(0)
  • 2020-12-20 19:01

    It's a bug in the String-to-double conversion algorithm of the JVM: http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/

    You can get the same hang if you try to parse that string at runtime. The compiler hangs because it uses the same code (it's a Java program after all).

    Update: the issue now has a CVE identifier (CVE-2010-4476) and a patch (for Oracle JVMs, also works on OpenJDK).

    According to the patch it all boils down to an off-by-one error.

    0 讨论(0)
提交回复
热议问题