For full details, see thread here:
http://mail.openjdk.java.net/pipermail/compiler-dev/2010-August/002243.html
Quote...
The JLS does not provide binary compatibility for compiler-generated
fields (such as reference to an outer class object from an inner class
object). This means that there is no reliable way to use such classes
in serialization even if all involved classes implement
java.io.Serializable. A mere recompilation of unchanged sources might
result in different compiler-generated names.
Would it make sense to enhance -Xlint:serial to warn about classes
which implement java.io.Serializable and contain compiler-generated
fields?