Hrošč v Javi povzroči neodzivnost pri pretvorbi številskih vrednosti med tipi

Matej Huš

1. feb 2011 ob 16:37:45

Prejšnji mesec smo poročali o hrošču v PHP, ki povzroči neodzivnost programa pri pretvarjanju zelo velikih ali zelo malih števil med različnimi tipi zapisa. Podoben hrošč je bil odkrit tudi v Javi (v izvajalnem okolju in v prevajalniku), ki prav tako obvisi pri pretvorbi vrednosti 2.2250738585072011e-308 v binarni zapis dvojne natančnosti s plavajočo vejico (to ni edini primer, saj se isto primeri tudi pri še nekaj drugih). Namesto pravilnega rezultata 0x1p-1022 se Javi zatakne v 0x0.fffffffffffffp-102. Odkritelj hrošča Konstantin Preisser je Oracle obvestil že pred tremi tedni, na popravek pa še čakamo.