Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
Те потоки ожидания ожидают навсегда, или они в конечном счете продолжаются?
Если последний, может случиться так, что блокировка сохранена сборщиком "мусора".
Можно добавить аргументы -verbose:gc with -XX:+PrintGCDetails
на Вашей командной строке Java, которая будет сказана, когда GCs происходят. Если действие gc совпадает с Вашим замедлением, оно может указать, что это - проблема.
Вот некоторая информация о сборке "мусора".
Ваш код каким-либо изменением используют какой-либо JNI? (т.е. Вы выполняете какой-либо собственный код, запущенный от Java?).
Мы видели подобное поведение, но JDK 1.6.0_05. Приложение, кажется, заходит в тупик, но выставочные потоки Jstack, ожидающие блокировки, на которую не содержат никакие другие потоки. У нас есть некоторый код JNI, таким образом, возможно, что мы повреждаем что-то.
Мы не нашли решение для этого, и проблема только восстанавливаема на 1 машине.
Да обычно каждый монитор, который заблокирован, должен сделать, чтобы владелец Распараллелил. Возможно, Ваш дамп стека не был завершен (слишком длинный), или возможно дамп не был последователен. Я мог предположить, что это не останавливает мир, таким образом, заблокированный монитор выводится, но поток, кто владеет блокировкой, выпускает его прежде чем быть выведенным (это - просто предположение).
Можете Вы некоторые, где загрузка, которую дамп как текстовый файл для более легкого поиска, и говорит нам, на какой монитор Вы смотрите.
Это - просто произвольное предположение, но это могло быть, что поток блокирует себя путем попытки получить блокировку дважды? Вероятно, помогло бы, могли ли Вы отправить некоторый код.