У меня есть проблема в моей кодовой базе, когда мы неправильно закрываем дескрипторы файлов или, возможно, потоки. В конце концов мы получаем исключение TooManyOpenFiles при очень большой нагрузке. Основываясь на выводе lsof, мы почти уверены, что знаем, где находится утечка (в нашей системе ведения журналов), но мой вопрос: как я могу написать модульный тест, который по завершении проверяет, что ресурсы были закрыты должным образом? Есть ли способ запросить JRE, чтобы узнать, сколько файлов в настоящее время открыто? Могу ли я как-то перехватить файловые операции, чтобы я мог их отслеживать?
Я подозреваю, что мне придется использовать свой код для управления всеми операциями ввода-вывода, подсчета ссылок и обеспечения того, чтобы они закрывались таким образом, но если кто-то знает о нисходящем решении, схожем с этими идеями Я упоминал выше, это было бы огромной помощью!