Я думаю, что я наконец-то обнаружил утечку вашего ресурса: в LogFactionPersonalStat
в строке 154 вы открываете файл с in = new BufferedReader(...
, который никогда не закрывается.
Я предлагаю вам узнать о try с ресурсами .
Код в том же файле, например строки 128-130, изменится с
FileWriter file = new FileWriter("" + path + completed); //set completion status to incomplete
file.write("0"); //zero means not yet complete
file.close();
на
try (FileWriter file = new FileWriter("" + path + completed)) { //set completion status to incomplete
file.write("0"); //zero means not yet complete
}
Не большой изменить, но теперь вы не можете забыть о закрытии FileWriter
(или BufferedWriter
или BufferedReader
)
Еще одно примечание: RunUpdate
строка 53 выглядит очень подозрительно (этот шаблон повторяется несколько раз раз):
Logger.getLogger("Error reading from file");
Здесь вы создаете логиер для «Ошибка чтения из файла», но вы никогда не используете этот регистратор для записи чего-либо в журнал.
Вы, вероятно, хотели что-то написать как
Logger.getLogger(OtherFactionsStats.class.getName()).severe("Error: Possible timeout or problems with file");
или
Logger.getLogger(OtherFactionsStats.class.getName()).log(Level.Severe, "Error: Possible timeout or problems with file");