Наиболее распространенным случаем, который я видел для, казалось бы, загадочных ArrayIndexOutOfBoundsExceptions, то есть, по-видимому, не вызванных вашим собственным кодом обработки массива, является одновременное использование SimpleDateFormat.В частности, в сервлете или контроллере:
public class MyController {
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
public void handleRequest(ServletRequest req, ServletResponse res) {
Date date = dateFormat.parse(req.getParameter("date"));
}
}
Если два потока вводят метод SimplateDateFormat.parse () вместе, вы, скорее всего, увидите исключение ArrayIndexOutOfBoundsException.Обратите внимание на раздел синхронизации javadoc класса для SimpleDateFormat .
Убедитесь, что в вашем коде нет места для доступа к небезопасным классам потоков, таким как SimpleDateFormat, одновременно, как в сервлете или контроллере,Проверьте все переменные экземпляра ваших сервлетов и контроллеров на наличие возможных подозреваемых.