Review request 8002212 - adding read/writeObject to additional SerialXXX classes

Lance Andersen - Oracle Lance.Andersen at oracle.com
Sat Nov 3 00:46:33 UTC 2012


Hi Remi,

Thank you for the feedback
On Nov 2, 2012, at 7:42 PM, Remi Forax wrote:

> On 11/02/2012 11:57 PM, Lance Andersen - Oracle wrote:
>> This is similar to 8001536, just additional classes.
>> 
>> This adds read/writeObject, equals, clone methods to additional SerialXXX classes
>> 
>> SQE, JCK and JDBC Unit tests all pass.
>> 
>> The webrev can be viewed at http://cr.openjdk.java.net/~lancea/8002212/webrev.00
> 
> Hi Lance,
> in SerialArray.equals(), I prefer
> 
> return baseType == sa.baseType &&
>        baseTypeName.equals(sa.baseTypeName)) &&
>        Arrays.equals(elements, sa.elements);
> 
> instead of
> 
>  if(baseType == sa.baseType && baseTypeName.equals(sa.baseTypeName)) {
>      return Arrays.equals(elements, sa.elements);
>  }
> 

That is fine, I can make the change. 
> In SerialDataLink, do you really need readObject/writeObject given
> that you call the default implementations.

I thought about that but had decided to add them for consistency
> 
> in SerialJavaObject, in equals, you should declare a local variable like in SerialDataLink.equals,
> even if the local varialble is used once, it's more readable.

OK
> Also like in SerialArray.equals, you can do a return directly instead of if(...) return true.
> in clone(), you can use the diamond syntax,
> sjo.chain = new Vector<>(chain);

Yeah, long story, but I forgot to reset to diamond syntax (will tell you over a beer sometime :-) )
> in setWarning(), you can use the diamond syntax as the original source does.
> and in readObject, you can use the diamond syntax too.
OK
> In readObject, you forget to throw an exception if there are some static fields
> in getClass().getFields() as the constructor does
> (this code can be moved in a private static method).

I thought about that, but figured since it was already through that check when the object was created, I did not think it required repeating in the readObject method
> Also, you should add a comment that because you call getClass() on obj,
> there is an implicit null check.
Would it be better to put an null check in explicitly?
> 
> This can be fixed as a separated bug or not but the code of
> method SerialJavaObject.getField() is weird, the code checks if fields can be null,
> but fields is never null. Also, cloning the field array is perhaps a better idea
> if the reflection implementation doesn't cache the array of fields.

I will do this in a separate bug, trying to keep things clear on the bug
> 
> In SerialRef.equals, again, if(...) return should be transformed into return ...

OK

Thank you again, will send an update webrev over the weekend

Best
Lance
> 
>> 
>> Best
>> Lance
> 
> cheers,
> Rémi
> 
>> 
>> Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
>> Oracle Java Engineering
>> 1 Network Drive
>> Burlington, MA 01803
>> Lance.Andersen at oracle.com
>> 
> 

-------------- next part --------------

Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering 
1 Network Drive 
Burlington, MA 01803
Lance.Andersen at oracle.com



More information about the core-libs-dev mailing list