Полный текст

Одна строка кода, которая заблокировала 102 потокаСервис работает штатно, дашборды зелёные. Но в дампе памяти высоконагруженного Java-приложения обнаруживается пробка: сотня потоков намертво встала в ожидании блокировки URLClassPath.Виновником оказывается обычный вызов DatatypeFactory.newInstance(). Он запускает скрытую машинерию ServiceLoader. Идёт сканирование JAR-файлов, которое жёстко упирается в синхронизированный метод поиска провайдеров.При 800 RPS банальная конвертация дат создаёт миллионы холостых обращений к ClassLoader. Декодируем логику фреймворка.