Additional -Xlint:serial warning
Neal Gafter
neal at gafter.com
Wed Aug 4 08:14:27 PDT 2010
Unfortunately, many inner classes are only "incidentally" serializable -
that is, they are serializable because the superclass or some implemented
interface extends Serializable. A simple example would be an inner
exception class - even though most programs do not serialize exceptions,
this would trigger the proposed diagnostic.
On Wed, Aug 4, 2010 at 4:50 AM, Florian Weimer <fweimer at bfk.de> wrote:
> 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?
>
> PS: This is quite different from the frequently observed issue where a
> non-static inner class cannot be serialized because the outer class is
> not serializable. Serialization works fine, but deserialization
> silently results in invalid objects.
>
> --
> Florian Weimer <fweimer at bfk.de>
> BFK edv-consulting GmbH http://www.bfk.de/
> Kriegsstraße 100 tel: +49-721-96201-1
> D-76133 Karlsruhe fax: +49-721-96201-99
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/compiler-dev/attachments/20100804/13524666/attachment.html
More information about the compiler-dev
mailing list