【发布时间】:2010-10-13 07:29:29
【问题描述】:
我正在编写一个非常简单的 RMI 服务器,我在单元测试中看到间歇性的 java.rmi.NoSuchObjectExceptions。
我在同一个对象上有一串远程方法调用,虽然前几个通过,但后面的有时会失败。我没有做任何事情来注销其间的服务器对象。
这些错误并不总是出现,如果我设置断点,它们往往不会出现。那些 Heisenbugs,通过减慢执行调试器的速度查看它们时,其竞争条件会消失吗?我的测试或服务器代码中没有多线程(尽管可能在 RMI 堆栈内部?)。
我通过 Eclipse 的 JUnit 插件在 Mac OS X 10.5 (Java 1.5) 上运行它,并且 RMI 服务器和客户端都在同一个 JVM 中。
什么会导致这些异常?
【问题讨论】: