Ну, может случиться много вещей, но я думаю, что ваш код выглядит довольно хорошо.
Что нужно учитывать ...
Передается ли список messages
ввсе в методе doLongRunningOperation()
?Если да, то помещается ли он в переменную класса в любой момент?
Является ли InputObject
новым объектом каждый раз, когда он передается в ваш код?Если нет, то это может вызвать проблемы.
Является ли переменная InputObject
messages
пустой, когда она входит в ваш код?
Вы могли бы вместо этого возвратить новый экземпляр InputObject
использования экземпляра, отправленного вашему методу.
Вы можете закомментировать длительный процесс, чтобы увидеть, продолжает ли проблема возникать.
Если вы видите, что проблема повторяется в вашей конкретной разработкеВ этой среде вы можете поместить точку останова отладки в метод InputObject.addMessages()
и посмотреть, когда он вызывается.
Просто некоторые идеи, чтобы подумать и, возможно, попытаться помочь отладить проблему.