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