Hi Lance, Daniel,

I suggest we take this incompatibility and document it in the release notes (we'll likely have more). I reversed DurationImpl and then realized why the Xerces engineers made the incompatibility change when I started on XMLGregorianCalendarImpl. It was because XMLGregorianCalendarImpl did not implement what was recommended, using the lexical form for serialization. In the original implementation therefore, the impl between XMLGregorianCalendarImpl and DurationImpl was not consistent.

Keeping this Xerces revision makes the serialization consistent in both classes and adds the benefit of having the same source as that of Xerces.

Thanks,
Joe

On 2/11/2014 10:56 AM, huizhe wang wrote:

On 2/11/2014 9:05 AM, Daniel Fuchs wrote:
On 2/11/14 5:55 PM, Lance @ Oracle wrote:
Hi joe

It looks like you changed the serialversionuid in Durationimpl, did it get changed incorrectly previously?

I noticed that as well, but I'm not sure it matters since Duration
uses writeReplace to serialize itself as an instance of
SerializedDuration. Is that correct Joe?

Yes, it's serialized as an instance of SerializedDuration, similar to the calendar where it's SerializedXMLGregorianCalendar.


If I'm not mistaken it also means that the serialization forms
(before & after the change) are  not compatible - but is that an
issue for such internal classes?

Indeed, it's probably an issue since the binary is not compatible. It looks like this change should be rolled back.

-Joe


best regards,

-- daniel



Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering
1 Network Drive
Burlington, MA 01803
lance.ander...@oracle.com
Sent from my iPad

On Feb 10, 2014, at 6:53 PM, huizhe wang <huizhe.w...@oracle.com> wrote:

Hi,

This is an update from Xerces for two datatype classes XMLGregorianCalendarImpl and DurationImpl. For details, please refer to:
https://bugs.openjdk.java.net/browse/JDK-8033980

webrevs: http://cr.openjdk.java.net/~joehw/jdk9/8033980/webrev/

Tests included for: 1243, 1416, 1097 (Note that JDK did not have this bug)

No test:
1343: remove unused code

Existing tests: JAXP SQE and Unit tests passed.

Thanks,
Joe



Reply via email to