RFR: 8167002: JAXP schema validator: Use HashSet instead of ArrayList for tracking XML IDs
Langer, Christoph
christoph.langer at sap.com
Mon Oct 3 06:11:41 UTC 2016
Hi Martin,
this also looks like a good catch to me, +1.
When you push, could you insert the copyright block from, e.g. src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XML11DocumentScannerImpl.java at the place where you currently find the " reserved comment block ", first 4 lines? The XML copyright headers get cleaned up as they are touched...
Thanks and best regards
Christoph
> -----Original Message-----
> From: core-libs-dev [mailto:core-libs-dev-bounces at openjdk.java.net] On Behalf
> Of Martin Buchholz
> Sent: Samstag, 1. Oktober 2016 18:55
> To: Claes Redestad <claes.redestad at oracle.com>
> Cc: core-libs-dev <core-libs-dev at openjdk.java.net>
> Subject: Re: RFR: 8167002: JAXP schema validator: Use HashSet instead of
> ArrayList for tracking XML IDs
>
> On Sat, Oct 1, 2016 at 5:45 AM, Claes Redestad <claes.redestad at oracle.com>
> wrote:
>
> >
> > On 2016-10-01 02:41, Martin Buchholz wrote:
> >
> >> https://bugs.openjdk.java.net/browse/JDK-8167002
> >> http://cr.openjdk.java.net/~martin/webrevs/openjdk9/xml-id-v
> >> alidation-by-hash/
> >>
> >>
> > +1, but I have to ask what the intended benefit of writing:
> >
> > ((fIds != null) ? fIds : (fIds = new HashSet<>())).add(name);
> >
> > rather than keeping the pre-existing pattern:
> >
> > if (fIds == null) fIds = new HashSet<>();
> > fIds.add(name);
> >
> > If this is about bytecode optimization to help with inlining or such,
> > the latter actually generate a more compact method (14 vs 16 bytecodes).
>
>
> The intent was (by instinct) to not code a re-read of a field, but ... yeah
> .... that wasn't achieved.
> That could be done correctly using
>
> public void addId(String name) {
> HashSet<String> x;
> if ((x = fIds) == null) fIds = x = new HashSet<>();
> x.add(name);
> }
>
> but I'll just revert to
> if (fIds == null) fIds = new HashSet<>();
> fIds.add(name);
More information about the core-libs-dev
mailing list