Ближайшая конференция:
#java #jokerconf #jpoint #IT #conference #jugrugroup
Реализация статичного метода rotate в классе содержала ошибку переполнения. Дефект проявлялся лишь на массивах с числом элементов больше, чем 2^30, т.е. на очень больших массивах, и находился в OpenJDK на протяжении 22 лет. Этому багу подвержены все версии Java по 21 включительно.
Как и в случае с другими долгожителями, ошибка была обнаружена случайно. На тот момент я преподавал студентам первого курса прикладной математики и информатики в МАИ. Оказалось, что даже реализация в Java SE, написанная инженерами Sun Microsystems, не проходит тесты, которые я подготовил для проверки лабораторных работ студентов! О тернистом пути от обнаружения дефекта до коммита в master и будет выступление.
Скачать презентацию с сайта —