我正在编写一个非常简单的RMI服务器,我java.rmi.NoSuchObjectExceptions在单元测试中看到间歇性的.
我在同一个对象上有一串远程方法调用,而前几个调用完成后,后面的调用有时会失败.我没有做任何事情来取消注册服务器对象.
这些错误并不总是出现,如果我输入断点,它们往往不会出现.是那些Heisenbugs,当通过调试器的执行速度减慢来查看它们时,它们的竞争条件会消失吗?我的测试或服务器代码中没有多线程(尽管可能在RMI堆栈内部?).
我通过Eclipse的JUnit插件在Mac OS X 10.5(Java 1.5)上运行它,并且RMI服务器和客户端都在同一个JVM中.
什么可以导致这些例外?