Thank you Doug, Martin, Peter and Alan for efforts your in tracking this down. 
Even though it's not implicated, I am going to hold off on the OpenJDK7u-dev 
push of 7175464 for a few days to allow for some additional testing.

Mike

On Feb 10 2013, at 19:52 , Martin Buchholz wrote:

> Alright, now that the problem (if not the solution) is well understood, I 
> leave it to you.
> 
> Martin
> 
> On Sun, Feb 10, 2013 at 2:54 AM, Alan Bateman <alan.bate...@oracle.com> wrote:
> On 09/02/2013 23:31, Martin Buchholz wrote:
> On Sat, Feb 9, 2013 at 3:09 PM, Martin Buchholz<marti...@google.com>  wrote:
> 
> It looks to me like Collections.reverseOrder no longer deserializes to the
> same object.  It also looks like the definition for that in
> Collections.java hasn't changed recently.  So I suspect that there has been
> some serious incompatible change to deserialization itself.
> (It's another matter whether that could break TreeSet).
> (I have long lobbied for more cross-jdk testing focused on seriallization)
> 
> The program below demonstrates the different behavior between jdk7 and
> jdk8:
> 
> 
> Oops - correction - this is not a difference between jdk7 and jdk8, but
> between jdk8 and lambda8, More specifically, lambda-8-b74 fails,
> while jdk8-b74 succeeds.  Have lambdadukes messed with serialization?
> 
> Collections.ReverseComparator's readResolve is:
> 
> 
> private Object readResolve() { return reverseOrder(); }
> 
> so I assume it's the new Comparator.reverseOrder() that is used now rather 
> than Collections.reverseOrder() as before. Ha, this means it's returning a 
> compator to reverse itself.
> 
> This one aside, this is another issue with serialization that has come about 
> because of default methods and because declared methods are used in the 
> computation of the default serial version UID. Mike and Stuart are looking 
> into that one (I think it came up on the lambda-dev list recently).
> 
> -Alan
> 
> 
> 
> 

Reply via email to