X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-repo-spi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fmodel%2Frepo%2Fspi%2FGuavaSchemaSourceCache.java;h=ce337c829789afb40168314d2a1142c4e1f922bb;hb=518d5b5f0c80a892ca36ab33bad8d9fe8a7b4730;hp=7747c93a6bfd76b69b1698bf63c3e0a1c38c3c82;hpb=0ad5644d6e4e5a9ef6a18d462c97064d41cbcd42;p=yangtools.git diff --git a/yang/yang-repo-spi/src/main/java/org/opendaylight/yangtools/yang/model/repo/spi/GuavaSchemaSourceCache.java b/yang/yang-repo-spi/src/main/java/org/opendaylight/yangtools/yang/model/repo/spi/GuavaSchemaSourceCache.java index 7747c93a6b..ce337c8297 100644 --- a/yang/yang-repo-spi/src/main/java/org/opendaylight/yangtools/yang/model/repo/spi/GuavaSchemaSourceCache.java +++ b/yang/yang-repo-spi/src/main/java/org/opendaylight/yangtools/yang/model/repo/spi/GuavaSchemaSourceCache.java @@ -71,21 +71,25 @@ public final class GuavaSchemaSourceCache @Override protected void offer(final T source) { - final T present = cache.getIfPresent(source.getIdentifier()); - if (present == null) { - cache.put(source.getIdentifier(), source); + final var srcId = source.getIdentifier(); + if (cache.getIfPresent(srcId) != null) { + // We already have this source, do not track it + return; + } - final SchemaSourceRegistration reg = register(source.getIdentifier()); - final FinalizablePhantomReference ref = new FinalizablePhantomReference<>(source, queue) { - @Override - public void finalizeReferent() { - reg.close(); - regs.remove(this); - } - }; + // Make the source available + cache.put(srcId, source); + final var reg = register(srcId); - regs.add(ref); - } + final FinalizablePhantomReference ref = new FinalizablePhantomReference<>(source, queue) { + @Override + public void finalizeReferent() { + reg.close(); + regs.remove(this); + } + }; + + regs.add(ref); } @Override