Я пишу очень простой сервер RMI, и я вижу прерывистый java.rmi.NoSuchObjectExceptions
в модульных тестах.
У меня есть строка удаленных вызовов методов на одном и том же объекте, и в то время как первые несколько пройдут, более поздние будут иногда терпеть неудачу. Я ничего не делаю, чтобы отменить регистрацию объекта сервера между ними.
Эти ошибки не появляются всегда, и если я помещаю точки останова, они, как правило, не отображаются. Являются ли эти Heisenbugs, условия гонки которых растворяются при просмотре их через замедленное выполнение отладчика? В моем тестовом или серверном коде много многопоточности (хотя, возможно, внутри стека RMI?).
Я запускаю это в Mac OS X 10.5 (Java 1.5) через плагин Eclipse JUnit, а сервер RMI и клиент находятся в одной JVM.
Что может вызывать эти исключения?