In JavaLanguage, the GarbageCollector does not guarantee that the finalizer on an object is ever invoked, much less deterministically. This means you cannot use neat resource management tricks like ResourceAcquisitionIsInitialization in JavaLanguage and hence DeterministicResourceManagement in general is a bit of a pain, and you end up using CopyAndPasteProgramming techniques to get the resource clean-up right in your 'finally' blocks.
See also: FinalizationProblem