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.