Review request for 6927486: Deadlock in legacy Hashtable writeObject() (original) (raw)

Alan Bateman Alan.Bateman at oracle.com
Wed Jan 5 13:36:41 UTC 2011


Neil Richards wrote:

Please find attached a changeset to address the problem reported in bug 6927486, "Deadlock in legacy Hashtable writeObject()". I've taken the liberty to generate a webrev from the changeset, just to make it a bit easier for folks to browse and review. http://cr.openjdk.java.net/~alanb/6927486/webrev/

I don't see any issues with the changes to j.u.Hashtable. You might have seen Stuart Mark's changes go by recently where he changed some of the existing code (including java.util) to use diamond. You might want to use this in these changes to avoid needing to re-run the tools on this code. This would also fix a style issue where you've got a space between the type parameters in a few places.

In the tests you catch Exception (or IOException or ClassNotFoundException) and then re-throw a RuntimeException. You can probably remove this as jtreg will mark the test as failed if it completes with any exception.

I think Mike Duigou plans to review this too and help get the changes into the tl/jdk repo.

The problem reported is similar to one found in java.util.Vector, for which a fix is also currently under review (http://mail.openjdk.java.net/pipermail/core-libs-dev/2010-December/005529.html). You might want to give this one a nudge by re-sending with a GPL header on the test. As I recall it was just the test that needed to be reviewed. PPS: I notice the API javadoc for PropertyPermission does not give its serialized form (and the "See Also:" section), even though it is Serializable, which strikes me as unusual.

I suppose it has no serializable fields of its own (over that which BasicPermission has), but I'm sure I've seen other serializable classes with no fields having "serialized form" entries. I assume it's the @serial exclude. You'll find some background in 4288648 (from 11 years ago) but it would require further digging to find all the details.

-Alan



More information about the core-libs-dev mailing list