Я понимаю, что это число только одно из целого ряда, которое может вызвать сбой приложения, но не может противостоять комментированию, проверьте последние 4 цифры. 2012, это говорит о многом из числа, древний предсказанный конец света, и наши современные приложения указывают на порог сбоя, если не исправлено :-)
простой способ полностью заблокировать большую часть JVM:
class runhang {
public static void main(String[] args) {
System.out.println("Test:");
double d = Double.parseDouble("2.2250738585072012e-308");
System.out.println("Value: " + d);
}
}
или повесить компилятор:
class compilehang {
public static void main(String[] args) {
double d = 2.2250738585072012e-308;
System.out.println("Value: " + d);
}
}
как объяснено здесь:http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/
У меня очень простой вопрос: какие хорошо продуманные веб-приложения вы знаете, на которые это может реально повлиять?
Другими словами: на каких веб-приложениях злоумышленник может выполнитьОтказ в обслуживании используя эту известную слабость?
Это плохо, это ужасно плохо. Но кроме программистов, использующих плавающую точку для денежного вычисления, я не вижу много сайтов с поддержкой Java, которые могут быть повреждены.
Я вижу игрушечные научные апплеты в качестве кандидатов, но кроме этого ...
Вот нить заблокированного потока (сделано с помощью «kill -3» в Linux):
"main" prio=1 tid=0x09ab8a10 nid=0x57e9 runnable [0xbfbde000..0xbfbde728]
at sun.misc.FDBigInt.mult(FloatingDecimal.java:2617)
at sun.misc.FloatingDecimal.multPow52(FloatingDecimal.java:158)
at sun.misc.FloatingDecimal.doubleValue(FloatingDecimal.java:1510)
at java.lang.Double.parseDouble(Double.java:482)
РЕДАКТИРОВАТЬ
JVM заблокированы здесь:
Java-версия "1.5.0_10" Java (TM) 2 Runtime Environment, Standard Edition (сборка 1.5.0_10-b03) Java HotSpot (TM), серверная виртуальная машина (сборка 1.5.0_10-b03, смешанный режим)
Java-версия "1.6.0_17" Java (TM) SE Runtime Environment (сборка 1.6.0_17-b04) Java HotSpot (TM) Серверная виртуальная машина (сборка 14.3-b01, смешанный режим)