Salikh, gc.Finalizer and gc PhantomReferenceQueueTest are synthetic test. And can't be called "normal" (do code review, if you doubt, please). But this test isn't source of the circularity error. The error can happen for usual application too. The CL an SM tests just show that source of fake circularity error exists. It's it.
I think, this fake error can happen in usual applications. But it can be masked here or be covered by other issues... Pavel Afremov On 10/24/06, Salikh Zakirov <[EMAIL PROTECTED]> wrote:
Gregory Shimansky wrote: > Yes the test is synthetic. But the whole problem arose from the currently > excluded smoke tests gc.PhantomReferenceQueueTest and gc.Finalizer. They too > are synthetic but may be an example of another place where this problem > appears. > > The idea to write user code tests was just to show that finalizers > implementation is not the one to be blamed and the problem is reproducible on > pure user code applications, not to show that this problem is so rare no one > in right mind would ever write an application to encounter it :) Gregory, the problem as I see it is that gc.Finalizer and gc.PhantomReferenceQueueTest are *normal* test cases in the sense that they exercise finalizable objects and phantom references in *exactly* the same way as an application would. And Pavel's synthetic tests (HARMONY-1945) do something allowed by the spec, but entirely uncommon for an application -- recursive call from a classloader to the application.