diff -r 3db45569f8c0 -r 9db149412e0e hotspot/src/share/vm/oops/annotations.cpp --- a/hotspot/src/share/vm/oops/annotations.cpp Wed Dec 19 10:35:08 2012 -0800 +++ b/hotspot/src/share/vm/oops/annotations.cpp Thu Dec 20 10:22:19 2012 +0100 @@ -61,6 +61,9 @@ free_contents(loader_data, methods_annotations()); free_contents(loader_data, methods_parameter_annotations()); free_contents(loader_data, methods_default_annotations()); + + // Recursively deallocate optional Annotations linked through this one + MetadataFactory::free_metadata(loader_data, type_annotations()); } // Set the annotation at 'idnum' to 'anno'.