From c1d247ba667f38303e554bf8c4eda634d2d93b60 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 15 Feb 2022 21:54:54 +0100 Subject: [PATCH] Bump odlparent to 10.0.0 Adopt odlparent-10, addressing a few issues flushed out. Change-Id: I1b9f2500548ab6193e660cbef04ccaf9a0649679 Signed-off-by: Robert Varga --- artifacts/pom.xml | 2 +- benchmarks/pom.xml | 2 +- bnd-parent/pom.xml | 2 +- bundle-parent/pom.xml | 2 +- codec/pom.xml | 2 +- .../codec/gson/JSONCodecFactorySupplier.java | 13 +++++++----- common/mockito-configuration/pom.xml | 2 +- common/pom.xml | 2 +- common/testutils/pom.xml | 2 +- .../yangtools/util/ImmutableOffsetMap.java | 21 +++++++------------ .../util/ImmutableOffsetMapTemplate.java | 14 +++++++++---- .../yangtools/util/MutableOffsetMap.java | 3 ++- .../yangtools/util/SingletonSet.java | 3 +++ data/pom.xml | 2 +- .../src/main/java/module-info.java | 1 + .../util/MountPointNormalizedNodeWriter.java | 3 +++ .../yang/data/api/YangInstanceIdentifier.java | 3 --- .../impl/ImmutableUserLeafSetNodeBuilder.java | 3 --- .../yang/data/tree/impl/UniqueValidator.java | 7 ------- docs/pom.xml | 2 +- .../features-yangtools-experimental/pom.xml | 2 +- features/features-yangtools/pom.xml | 2 +- features/odl-yangtools-codec/pom.xml | 2 +- .../src/main/feature/feature.xml | 4 ++-- features/odl-yangtools-common/pom.xml | 2 +- features/odl-yangtools-data-api/pom.xml | 2 +- features/odl-yangtools-data/pom.xml | 2 +- .../src/main/feature/feature.xml | 2 +- .../odl-yangtools-exp-data-xpath-api/pom.xml | 2 +- features/odl-yangtools-exp-data-xpath/pom.xml | 2 +- features/odl-yangtools-export/pom.xml | 2 +- features/odl-yangtools-netty/pom.xml | 2 +- .../src/main/feature/feature.xml | 2 +- features/odl-yangtools-parser-api/pom.xml | 2 +- features/odl-yangtools-parser/pom.xml | 2 +- .../src/main/feature/feature.xml | 2 +- features/odl-yangtools-util/pom.xml | 2 +- .../src/main/feature/feature.xml | 2 +- features/odl-yangtools-xpath-api/pom.xml | 2 +- features/odl-yangtools-xpath/pom.xml | 2 +- .../src/main/feature/feature.xml | 2 +- features/pom.xml | 2 +- karaf/pom.xml | 2 +- model/pom.xml | 2 +- .../model/api/stmt/SchemaNodeIdentifier.java | 3 --- .../yang/model/api/stmt/UnresolvedNumber.java | 3 --- .../yang/model/spi/AbstractSchemaContext.java | 5 +++-- .../spi/meta/EffectiveStatementMixins.java | 4 +++- parser/pom.xml | 2 +- .../yang/parser/repo/DependencyResolver.java | 2 +- .../rfc7950/repo/YangModelDependencyInfo.java | 7 +++++-- .../AbstractDeviateStatementSupport.java | 7 ------- .../stmt/import_/SemanticVersionImport.java | 5 ----- .../stmt/uses/UsesStatementSupport.java | 5 ----- plugin/pom.xml | 2 +- plugin/yang-maven-plugin-it/pom.xml | 2 +- plugin/yang-maven-plugin-spi/pom.xml | 2 +- plugin/yang-maven-plugin/pom.xml | 2 +- pom.xml | 2 +- tools/pom.xml | 2 +- tools/yang-model-validator/pom.xml | 2 +- tools/yang-validation-tool/pom.xml | 2 +- xpath/pom.xml | 2 +- yang/pom.xml | 2 +- .../repo/spi/AbstractSchemaRepository.java | 3 --- 65 files changed, 93 insertions(+), 114 deletions(-) diff --git a/artifacts/pom.xml b/artifacts/pom.xml index 2b2e54c09e..76bfe2c08a 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml index 01b7a902ef..07a264145e 100644 --- a/benchmarks/pom.xml +++ b/benchmarks/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent - 9.0.13 + 10.0.0 4.0.0 diff --git a/bnd-parent/pom.xml b/bnd-parent/pom.xml index cef814662e..00de724b67 100644 --- a/bnd-parent/pom.xml +++ b/bnd-parent/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent bnd-parent - 9.0.13 + 10.0.0 diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index 0874eceb85..42055335e0 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent bundle-parent - 9.0.13 + 10.0.0 diff --git a/codec/pom.xml b/codec/pom.xml index 7c116cdc72..f48050f582 100644 --- a/codec/pom.xml +++ b/codec/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/codec/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONCodecFactorySupplier.java b/codec/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONCodecFactorySupplier.java index abe389fd08..8e06671585 100644 --- a/codec/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONCodecFactorySupplier.java +++ b/codec/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONCodecFactorySupplier.java @@ -15,6 +15,7 @@ import com.google.common.base.Stopwatch; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Optional; import java.util.function.BiFunction; import org.eclipse.jdt.annotation.NonNull; @@ -111,16 +112,18 @@ public enum JSONCodecFactorySupplier { private final LoadingCache precomputed; // Weak keys to retire the entry when SchemaContext goes away and to force identity-based lookup - private final LoadingCache shared; - - JSONCodecFactorySupplier() { - precomputed = CacheBuilder.newBuilder().weakKeys().build(new EagerCacheLoader(this::createFactory)); - shared = CacheBuilder.newBuilder().weakKeys().build(new CacheLoader() { + private final LoadingCache shared = CacheBuilder.newBuilder() + .weakKeys().build(new CacheLoader() { @Override public JSONCodecFactory load(final EffectiveModelContext key) { return createFactory(key, new SharedCodecCache<>()); } }); + + @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", + justification = "https://github.com/spotbugs/spotbugs/issues/1867") + JSONCodecFactorySupplier() { + precomputed = CacheBuilder.newBuilder().weakKeys().build(new EagerCacheLoader(this::createFactory)); } /** diff --git a/common/mockito-configuration/pom.xml b/common/mockito-configuration/pom.xml index 882b992a02..a742639f45 100644 --- a/common/mockito-configuration/pom.xml +++ b/common/mockito-configuration/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent - 9.0.13 + 10.0.0 diff --git a/common/pom.xml b/common/pom.xml index 1a09a08c97..19c3e06f37 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/common/testutils/pom.xml b/common/testutils/pom.xml index 37c4e6200f..3c7364002b 100644 --- a/common/testutils/pom.xml +++ b/common/testutils/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 9.0.13 + 10.0.0 diff --git a/common/util/src/main/java/org/opendaylight/yangtools/util/ImmutableOffsetMap.java b/common/util/src/main/java/org/opendaylight/yangtools/util/ImmutableOffsetMap.java index 66b20fbdf1..bba914f7ea 100644 --- a/common/util/src/main/java/org/opendaylight/yangtools/util/ImmutableOffsetMap.java +++ b/common/util/src/main/java/org/opendaylight/yangtools/util/ImmutableOffsetMap.java @@ -8,12 +8,12 @@ package org.opendaylight.yangtools.util; import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Verify.verifyNotNull; import static java.util.Objects.requireNonNull; import com.google.common.annotations.Beta; import com.google.common.collect.ImmutableMap; import com.google.common.collect.UnmodifiableIterator; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; @@ -137,13 +137,7 @@ public abstract class ImmutableOffsetMap implements UnmodifiableMapPhase offsets = OffsetMapCache.orderedOffsets(map.keySet()); - @SuppressWarnings("unchecked") - final V[] array = (V[]) new Object[offsets.size()]; - for (Entry e : map.entrySet()) { - array[offsets.get(e.getKey())] = e.getValue(); - } - - return new Ordered<>(offsets, array); + return new Ordered<>(offsets, createArray(offsets, map)); } /** @@ -173,13 +167,16 @@ public abstract class ImmutableOffsetMap implements UnmodifiableMapPhase offsets = OffsetMapCache.unorderedOffsets(map.keySet()); + return new Unordered<>(offsets, createArray(offsets, map)); + } + + private static V[] createArray(final ImmutableMap offsets, final Map map) { @SuppressWarnings("unchecked") final V[] array = (V[]) new Object[offsets.size()]; for (Entry e : map.entrySet()) { - array[offsets.get(e.getKey())] = e.getValue(); + array[verifyNotNull(offsets.get(e.getKey()))] = e.getValue(); } - - return new Unordered<>(offsets, array); + return array; } private static @Nullable Map commonCopy(final @NonNull Map map) { @@ -397,8 +394,6 @@ public abstract class ImmutableOffsetMap implements UnmodifiableMapPhase map, final @NonNull Field field, final Object value) throws IOException { try { diff --git a/common/util/src/main/java/org/opendaylight/yangtools/util/ImmutableOffsetMapTemplate.java b/common/util/src/main/java/org/opendaylight/yangtools/util/ImmutableOffsetMapTemplate.java index 091b40a4e8..c171a82f7e 100644 --- a/common/util/src/main/java/org/opendaylight/yangtools/util/ImmutableOffsetMapTemplate.java +++ b/common/util/src/main/java/org/opendaylight/yangtools/util/ImmutableOffsetMapTemplate.java @@ -12,6 +12,7 @@ import static java.util.Objects.requireNonNull; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableMap; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Arrays; import java.util.Collection; import java.util.Map; @@ -105,15 +106,20 @@ public abstract class ImmutableOffsetMapTemplate extends ImmutableMapTemplate final V[] objects = (V[]) new Object[size]; for (Entry entry : fromMap.entrySet()) { final K key = requireNonNull(entry.getKey()); - final Integer offset = offsets.get(key); - checkArgument(offset != null, "Key %s present in input, but not in offsets %s", key, offsets); - - objects[offset.intValue()] = transformValue(key, entry.getValue(), valueTransformer); + objects[offsetOf(key)] = transformValue(key, entry.getValue(), valueTransformer); } return createMap(offsets, objects); } + @SuppressFBWarnings(value = "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE", + justification = "SpotBugs does not grok checkArgument()") + private int offsetOf(final K key) { + final Integer offset = offsets.get(key); + checkArgument(offset != null, "Key %s present in input, but not in offsets %s", key, offsets); + return offset; + } + @Override @SafeVarargs public final @NonNull ImmutableOffsetMap instantiateWithValues(final V... values) { diff --git a/common/util/src/main/java/org/opendaylight/yangtools/util/MutableOffsetMap.java b/common/util/src/main/java/org/opendaylight/yangtools/util/MutableOffsetMap.java index 60f52396de..9f755d4059 100644 --- a/common/util/src/main/java/org/opendaylight/yangtools/util/MutableOffsetMap.java +++ b/common/util/src/main/java/org/opendaylight/yangtools/util/MutableOffsetMap.java @@ -8,6 +8,7 @@ package org.opendaylight.yangtools.util; import static com.google.common.base.Preconditions.checkState; +import static com.google.common.base.Verify.verifyNotNull; import static java.util.Objects.requireNonNull; import com.google.common.annotations.Beta; @@ -150,7 +151,7 @@ public abstract class MutableOffsetMap extends AbstractMap implement this(offsets, new Object[offsets.size()]); for (Entry e : source.entrySet()) { - objects[offsets.get(e.getKey())] = requireNonNull(e.getValue()); + objects[verifyNotNull(offsets.get(e.getKey()))] = requireNonNull(e.getValue()); } this.needClone = false; diff --git a/common/util/src/main/java/org/opendaylight/yangtools/util/SingletonSet.java b/common/util/src/main/java/org/opendaylight/yangtools/util/SingletonSet.java index 51f65dfac6..c14a6fe968 100644 --- a/common/util/src/main/java/org/opendaylight/yangtools/util/SingletonSet.java +++ b/common/util/src/main/java/org/opendaylight/yangtools/util/SingletonSet.java @@ -11,6 +11,7 @@ import static java.util.Objects.requireNonNull; import com.google.common.annotations.Beta; import com.google.common.collect.Iterators; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.Serializable; import java.util.Collection; import java.util.Iterator; @@ -168,6 +169,8 @@ public abstract class SingletonSet implements Set, Immutable, Serializable return s.size() == 1 && otherContains(s); } + @SuppressFBWarnings(value = "DCN_NULLPOINTER_EXCEPTION", + justification = "https://github.com/spotbugs/spotbugs/issues/1954") private boolean otherContains(final @NonNull Collection other) { try { return other.contains(getElement()); diff --git a/data/pom.xml b/data/pom.xml index c8bbc21c99..0738c2155b 100644 --- a/data/pom.xml +++ b/data/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/data/rfc8528-data-util/src/main/java/module-info.java b/data/rfc8528-data-util/src/main/java/module-info.java index 77de84111b..f58d131212 100644 --- a/data/rfc8528-data-util/src/main/java/module-info.java +++ b/data/rfc8528-data-util/src/main/java/module-info.java @@ -25,4 +25,5 @@ module org.opendaylight.yangtools.rfc8528.data.util { // Annotations requires static transitive org.eclipse.jdt.annotation; + requires static com.github.spotbugs.annotations; } diff --git a/data/rfc8528-data-util/src/main/java/org/opendaylight/yangtools/rfc8528/data/util/MountPointNormalizedNodeWriter.java b/data/rfc8528-data-util/src/main/java/org/opendaylight/yangtools/rfc8528/data/util/MountPointNormalizedNodeWriter.java index 2d023b00fe..3f3e544d65 100644 --- a/data/rfc8528-data-util/src/main/java/org/opendaylight/yangtools/rfc8528/data/util/MountPointNormalizedNodeWriter.java +++ b/data/rfc8528-data-util/src/main/java/org/opendaylight/yangtools/rfc8528/data/util/MountPointNormalizedNodeWriter.java @@ -11,6 +11,7 @@ import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; import com.google.common.annotations.Beta; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.rfc8528.data.api.MountPointNode; @@ -70,6 +71,8 @@ public abstract class MountPointNormalizedNodeWriter extends NormalizedNodeWrite return new Filtering(writer); } + @SuppressFBWarnings(value = "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE", + justification = "SpotBugs does not grok checkArgument()") public static @NonNull MountPointNormalizedNodeWriter forwardingFor(final NormalizedNodeStreamWriter writer) { final StreamWriterMountPointExtension mountWriter = writer.getExtensions() .getInstance(StreamWriterMountPointExtension.class); diff --git a/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/YangInstanceIdentifier.java b/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/YangInstanceIdentifier.java index a2ff3b598b..8c2204dd6d 100644 --- a/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/YangInstanceIdentifier.java +++ b/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/YangInstanceIdentifier.java @@ -21,7 +21,6 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import com.google.common.collect.Sets; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.Serializable; import java.lang.invoke.MethodHandles; import java.lang.invoke.VarHandle; @@ -386,8 +385,6 @@ public abstract class YangInstanceIdentifier implements HierarchicalIdentifier implements ListNodeBuilder) other).children); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private Map> getChildren() { return Collections.unmodifiableMap(children); } diff --git a/data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/UniqueValidator.java b/data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/UniqueValidator.java index 14242d095e..b502a90d4d 100644 --- a/data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/UniqueValidator.java +++ b/data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/UniqueValidator.java @@ -16,7 +16,6 @@ import com.google.common.collect.Collections2; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -122,8 +121,6 @@ abstract class UniqueValidator implements Immutable { * @param path Path to encode * @return Encoded path. */ - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private static Object encodePath(final List path) { return path.size() == 1 ? path.get(0) : ImmutableList.copyOf(path); } @@ -139,8 +136,6 @@ abstract class UniqueValidator implements Immutable { : (ImmutableList) obj; } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private static @NonNull Descendant decodeDescendant(final Object obj) { return Descendant.of(Collections2.transform(decodePath(obj), NodeIdentifier::getNodeType)); } @@ -153,8 +148,6 @@ abstract class UniqueValidator implements Immutable { * @param path Descendant path * @return Value for the descendant */ - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private static @Nullable Object extractValue(final Map, Object> valueCache, final DataContainerNode data, final List path) { return valueCache.computeIfAbsent(path, key -> extractValue(data, key)); diff --git a/docs/pom.xml b/docs/pom.xml index e2a273708b..3dbf2ca340 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -385,7 +385,7 @@ https://commons.apache.org/proper/commons-lang/javadocs/api-3.10/ https://commons.apache.org/proper/commons-codec/apidocs/ - https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/9.0.13/ + https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/10.0.0/ diff --git a/features/features-yangtools-experimental/pom.xml b/features/features-yangtools-experimental/pom.xml index 45784a4324..d4a3eddff7 100644 --- a/features/features-yangtools-experimental/pom.xml +++ b/features/features-yangtools-experimental/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent feature-repo-parent - 9.0.13 + 10.0.0 diff --git a/features/features-yangtools/pom.xml b/features/features-yangtools/pom.xml index c602732c21..87eaf71ac7 100644 --- a/features/features-yangtools/pom.xml +++ b/features/features-yangtools/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent feature-repo-parent - 9.0.13 + 10.0.0 diff --git a/features/odl-yangtools-codec/pom.xml b/features/odl-yangtools-codec/pom.xml index 76663e1b21..89e41f2465 100644 --- a/features/odl-yangtools-codec/pom.xml +++ b/features/odl-yangtools-codec/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent single-feature-parent - 9.0.13 + 10.0.0 diff --git a/features/odl-yangtools-codec/src/main/feature/feature.xml b/features/odl-yangtools-codec/src/main/feature/feature.xml index 97a8e95364..c7122de582 100644 --- a/features/odl-yangtools-codec/src/main/feature/feature.xml +++ b/features/odl-yangtools-codec/src/main/feature/feature.xml @@ -1,7 +1,7 @@ - odl-gson - odl-stax2-api + odl-gson + odl-stax2-api diff --git a/features/odl-yangtools-common/pom.xml b/features/odl-yangtools-common/pom.xml index 2866a8db8d..6cd73637a4 100644 --- a/features/odl-yangtools-common/pom.xml +++ b/features/odl-yangtools-common/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent single-feature-parent - 9.0.13 + 10.0.0 diff --git a/features/odl-yangtools-data-api/pom.xml b/features/odl-yangtools-data-api/pom.xml index 6fe57e79c0..ec2c6db947 100644 --- a/features/odl-yangtools-data-api/pom.xml +++ b/features/odl-yangtools-data-api/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent single-feature-parent - 9.0.13 + 10.0.0 diff --git a/features/odl-yangtools-data/pom.xml b/features/odl-yangtools-data/pom.xml index e5a2c51b96..1978160efb 100644 --- a/features/odl-yangtools-data/pom.xml +++ b/features/odl-yangtools-data/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent single-feature-parent - 9.0.13 + 10.0.0 diff --git a/features/odl-yangtools-data/src/main/feature/feature.xml b/features/odl-yangtools-data/src/main/feature/feature.xml index 29da8eea1b..9ea3ca68da 100644 --- a/features/odl-yangtools-data/src/main/feature/feature.xml +++ b/features/odl-yangtools-data/src/main/feature/feature.xml @@ -1,6 +1,6 @@ - odl-antlr4 + odl-antlr4 diff --git a/features/odl-yangtools-exp-data-xpath-api/pom.xml b/features/odl-yangtools-exp-data-xpath-api/pom.xml index 22d914e0ac..f24c7b5c77 100644 --- a/features/odl-yangtools-exp-data-xpath-api/pom.xml +++ b/features/odl-yangtools-exp-data-xpath-api/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent single-feature-parent - 9.0.13 + 10.0.0 diff --git a/features/odl-yangtools-exp-data-xpath/pom.xml b/features/odl-yangtools-exp-data-xpath/pom.xml index e4eb64039e..8f3ada4432 100644 --- a/features/odl-yangtools-exp-data-xpath/pom.xml +++ b/features/odl-yangtools-exp-data-xpath/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent single-feature-parent - 9.0.13 + 10.0.0 diff --git a/features/odl-yangtools-export/pom.xml b/features/odl-yangtools-export/pom.xml index 4c86e3ccd7..c8400a6ad0 100644 --- a/features/odl-yangtools-export/pom.xml +++ b/features/odl-yangtools-export/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent single-feature-parent - 9.0.13 + 10.0.0 diff --git a/features/odl-yangtools-netty/pom.xml b/features/odl-yangtools-netty/pom.xml index 01cb2887bd..4a39a90c1a 100644 --- a/features/odl-yangtools-netty/pom.xml +++ b/features/odl-yangtools-netty/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent single-feature-parent - 9.0.13 + 10.0.0 diff --git a/features/odl-yangtools-netty/src/main/feature/feature.xml b/features/odl-yangtools-netty/src/main/feature/feature.xml index dc798c447e..84b16e43b3 100644 --- a/features/odl-yangtools-netty/src/main/feature/feature.xml +++ b/features/odl-yangtools-netty/src/main/feature/feature.xml @@ -1,6 +1,6 @@ - odl-netty-4 + odl-netty-4 diff --git a/features/odl-yangtools-parser-api/pom.xml b/features/odl-yangtools-parser-api/pom.xml index d731f3cb11..14995d19cf 100644 --- a/features/odl-yangtools-parser-api/pom.xml +++ b/features/odl-yangtools-parser-api/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent single-feature-parent - 9.0.13 + 10.0.0 diff --git a/features/odl-yangtools-parser/pom.xml b/features/odl-yangtools-parser/pom.xml index 6bc736e652..d9d632c021 100644 --- a/features/odl-yangtools-parser/pom.xml +++ b/features/odl-yangtools-parser/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent single-feature-parent - 9.0.13 + 10.0.0 diff --git a/features/odl-yangtools-parser/src/main/feature/feature.xml b/features/odl-yangtools-parser/src/main/feature/feature.xml index b12e8e4279..8575f5284e 100644 --- a/features/odl-yangtools-parser/src/main/feature/feature.xml +++ b/features/odl-yangtools-parser/src/main/feature/feature.xml @@ -1,6 +1,6 @@ - odl-antlr4 + odl-antlr4 diff --git a/features/odl-yangtools-util/pom.xml b/features/odl-yangtools-util/pom.xml index 18fa6a9db8..40453e3d26 100644 --- a/features/odl-yangtools-util/pom.xml +++ b/features/odl-yangtools-util/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent single-feature-parent - 9.0.13 + 10.0.0 diff --git a/features/odl-yangtools-util/src/main/feature/feature.xml b/features/odl-yangtools-util/src/main/feature/feature.xml index 3bd7f37663..7b8a427f04 100644 --- a/features/odl-yangtools-util/src/main/feature/feature.xml +++ b/features/odl-yangtools-util/src/main/feature/feature.xml @@ -1,7 +1,7 @@ - odl-guava + odl-guava pt-triemap diff --git a/features/odl-yangtools-xpath-api/pom.xml b/features/odl-yangtools-xpath-api/pom.xml index fc030532c2..c50b3f4ea3 100644 --- a/features/odl-yangtools-xpath-api/pom.xml +++ b/features/odl-yangtools-xpath-api/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent single-feature-parent - 9.0.13 + 10.0.0 diff --git a/features/odl-yangtools-xpath/pom.xml b/features/odl-yangtools-xpath/pom.xml index 9d26d375de..0b4ccef123 100644 --- a/features/odl-yangtools-xpath/pom.xml +++ b/features/odl-yangtools-xpath/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent single-feature-parent - 9.0.13 + 10.0.0 diff --git a/features/odl-yangtools-xpath/src/main/feature/feature.xml b/features/odl-yangtools-xpath/src/main/feature/feature.xml index 8e7483cee2..e6732601c8 100644 --- a/features/odl-yangtools-xpath/src/main/feature/feature.xml +++ b/features/odl-yangtools-xpath/src/main/feature/feature.xml @@ -1,6 +1,6 @@ - odl-antlr4 + odl-antlr4 diff --git a/features/pom.xml b/features/pom.xml index 419a898c06..c64819e69a 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/karaf/pom.xml b/karaf/pom.xml index 3fab9fe7cd..c32bdc1508 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -9,7 +9,7 @@ org.opendaylight.odlparent karaf4-parent - 9.0.13 + 10.0.0 diff --git a/model/pom.xml b/model/pom.xml index 1a60ec4594..25d6bf8a4b 100644 --- a/model/pom.xml +++ b/model/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/SchemaNodeIdentifier.java b/model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/SchemaNodeIdentifier.java index b5f9be9e8d..728d8ea68a 100644 --- a/model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/SchemaNodeIdentifier.java +++ b/model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/SchemaNodeIdentifier.java @@ -14,7 +14,6 @@ import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableList; import com.google.common.collect.Interner; import com.google.common.collect.Interners; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -293,8 +292,6 @@ public abstract class SchemaNodeIdentifier implements Immutable { return ids.size() < 2 ? ids : simplifyQNames(ids); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private static ImmutableList checkQNames(final Collection qnames) { final ImmutableList ret = ImmutableList.copyOf(qnames); checkArgument(!ret.isEmpty(), "SchemaNodeIdentifier has to have at least one node identifier"); diff --git a/model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/UnresolvedNumber.java b/model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/UnresolvedNumber.java index 578a925063..ee4b21fe83 100644 --- a/model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/UnresolvedNumber.java +++ b/model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/UnresolvedNumber.java @@ -11,7 +11,6 @@ import static com.google.common.base.Preconditions.checkArgument; import com.google.common.annotations.Beta; import com.google.common.collect.Range; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.Immutable; @@ -97,8 +96,6 @@ public abstract class UnresolvedNumber extends Number implements Immutable { throw new UnsupportedOperationException(); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private static T resolve(final T number) { checkArgument(!(number instanceof UnresolvedNumber)); return number; diff --git a/model/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/AbstractSchemaContext.java b/model/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/AbstractSchemaContext.java index 5c2b570e62..05c1eb6687 100644 --- a/model/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/AbstractSchemaContext.java +++ b/model/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/AbstractSchemaContext.java @@ -7,7 +7,6 @@ */ package org.opendaylight.yangtools.yang.model.spi; -import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; import com.google.common.collect.ImmutableMap; @@ -228,7 +227,9 @@ public abstract class AbstractSchemaContext implements SchemaContext { local = loadDerivedIdentities(); } final ImmutableSet result = local.get(requireNonNull(identity)); - checkArgument(result != null, "Identity %s not found", identity); + if (result == null) { + throw new IllegalArgumentException("Identity " + identity + " not found"); + } return result; } diff --git a/model/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/meta/EffectiveStatementMixins.java b/model/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/meta/EffectiveStatementMixins.java index 0d8cbf5306..5c5b9bbd60 100644 --- a/model/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/meta/EffectiveStatementMixins.java +++ b/model/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/meta/EffectiveStatementMixins.java @@ -7,6 +7,8 @@ */ package org.opendaylight.yangtools.yang.model.spi.meta; +import static com.google.common.base.Verify.verifyNotNull; + import com.google.common.annotations.Beta; import com.google.common.base.Strings; import com.google.common.collect.Collections2; @@ -329,7 +331,7 @@ public final class EffectiveStatementMixins { extends DocumentedNodeMixin.WithStatus, CopyableMixin, UnknownSchemaNode { @Override default String getNodeParameter() { - return Strings.nullToEmpty(getDeclared().rawArgument()); + return Strings.nullToEmpty(verifyNotNull(getDeclared()).rawArgument()); } } diff --git a/parser/pom.xml b/parser/pom.xml index 650f89a3e6..9f6ad14ab4 100644 --- a/parser/pom.xml +++ b/parser/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/parser/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/repo/DependencyResolver.java b/parser/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/repo/DependencyResolver.java index 699a80611b..5598129ede 100644 --- a/parser/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/repo/DependencyResolver.java +++ b/parser/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/repo/DependencyResolver.java @@ -182,7 +182,7 @@ abstract class DependencyResolver { @Override public String getPrefix() { - return null; + throw new UnsupportedOperationException(); } @Override diff --git a/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/repo/YangModelDependencyInfo.java b/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/repo/YangModelDependencyInfo.java index c81bf3a884..42b9e38a0b 100644 --- a/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/repo/YangModelDependencyInfo.java +++ b/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/repo/YangModelDependencyInfo.java @@ -316,7 +316,10 @@ public abstract class YangModelDependencyInfo { static String safeStringArgument(final SourceIdentifier source, final IRStatement stmt, final String desc) { final StatementSourceReference ref = getReference(source, stmt); final IRArgument arg = stmt.argument(); - checkArgument(arg != null, "Missing %s at %s", desc, ref); + if (arg == null) { + throw new IllegalArgumentException("Missing " + desc + " at " + ref); + } + // TODO: we probably need to understand yang version first.... return ArgumentContextUtils.rfc6020().stringFromStringContext(arg, ref); } @@ -410,7 +413,7 @@ public abstract class YangModelDependencyInfo { @Override public String getPrefix() { - return null; + throw new UnsupportedOperationException(); } @Override diff --git a/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviate/AbstractDeviateStatementSupport.java b/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviate/AbstractDeviateStatementSupport.java index f3b314384d..11dc737e53 100644 --- a/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviate/AbstractDeviateStatementSupport.java +++ b/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviate/AbstractDeviateStatementSupport.java @@ -13,7 +13,6 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import com.google.common.collect.Maps; import com.google.common.collect.SetMultimap; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -258,8 +257,6 @@ abstract class AbstractDeviateStatementSupport return false; } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private static void performDeviateAdd(final StmtContext deviateStmtCtx, final Mutable targetCtx) { for (StmtContext originalStmtCtx : deviateStmtCtx.declaredSubstatements()) { @@ -286,8 +283,6 @@ abstract class AbstractDeviateStatementSupport copyStatement(stmtCtxToBeAdded, targetCtx); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private static void performDeviateReplace(final StmtContext deviateStmtCtx, final Mutable targetCtx) { for (StmtContext originalStmtCtx : deviateStmtCtx.declaredSubstatements()) { @@ -337,8 +332,6 @@ abstract class AbstractDeviateStatementSupport stmtToBeReplaced.getStatementName(), targetCtx.argument()); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private static void performDeviateDelete(final StmtContext deviateStmtCtx, final Mutable targetCtx) { for (StmtContext originalStmtCtx : deviateStmtCtx.declaredSubstatements()) { diff --git a/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_/SemanticVersionImport.java b/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_/SemanticVersionImport.java index 48c78e54fb..51d8fed36b 100644 --- a/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_/SemanticVersionImport.java +++ b/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_/SemanticVersionImport.java @@ -12,7 +12,6 @@ import static org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPha import static org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils.firstAttributeOf; import com.google.common.base.MoreObjects.ToStringHelper; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Collection; import java.util.Optional; import org.opendaylight.yangtools.concepts.SemVer; @@ -167,14 +166,10 @@ final class SemanticVersionImport { return Optional.ofNullable(stmt.getFromNamespace(SemanticVersionNamespace.class, stmt)); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private static String getRequestedImportVersionString(final StmtContext stmt) { return getRequestedImportVersion(stmt).map(SemVer::toString).orElse(""); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private static SemVerSourceIdentifier createSemVerModuleIdentifier( final SourceIdentifier importedModuleIdentifier, final SemVer semVer) { return SemVerSourceIdentifier.create(importedModuleIdentifier.getName(), diff --git a/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/UsesStatementSupport.java b/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/UsesStatementSupport.java index f2d2f24a8f..b2be7e5465 100644 --- a/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/UsesStatementSupport.java +++ b/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/UsesStatementSupport.java @@ -12,7 +12,6 @@ import static com.google.common.base.Verify.verifyNotNull; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.ArrayList; import java.util.Collection; import java.util.LinkedHashMap; @@ -191,8 +190,6 @@ public final class UsesStatementSupport * @throws SourceException * instance of SourceException */ - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private static void copyFromSourceToTarget(final StmtContext sourceGrpStmtCtx, final Mutable targetCtx, final Mutable usesNode) { final var declared = sourceGrpStmtCtx.declaredSubstatements(); @@ -275,8 +272,6 @@ public final class UsesStatementSupport return null; } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private static void resolveUsesNode(final Mutable usesNode, final StmtContext targetNodeStmtCtx) { for (Mutable subStmtCtx : usesNode.mutableDeclaredSubstatements()) { diff --git a/plugin/pom.xml b/plugin/pom.xml index 56146bd1ba..2b419be915 100644 --- a/plugin/pom.xml +++ b/plugin/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/plugin/yang-maven-plugin-it/pom.xml b/plugin/yang-maven-plugin-it/pom.xml index 9c5be34513..488bfa44ec 100644 --- a/plugin/yang-maven-plugin-it/pom.xml +++ b/plugin/yang-maven-plugin-it/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent - 9.0.13 + 10.0.0 diff --git a/plugin/yang-maven-plugin-spi/pom.xml b/plugin/yang-maven-plugin-spi/pom.xml index 2be892286b..253d97423e 100644 --- a/plugin/yang-maven-plugin-spi/pom.xml +++ b/plugin/yang-maven-plugin-spi/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent - 9.0.13 + 10.0.0 diff --git a/plugin/yang-maven-plugin/pom.xml b/plugin/yang-maven-plugin/pom.xml index 24a3c731f9..773c8ff9b3 100644 --- a/plugin/yang-maven-plugin/pom.xml +++ b/plugin/yang-maven-plugin/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent - 9.0.13 + 10.0.0 diff --git a/pom.xml b/pom.xml index e4d88319b4..ce47750588 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/tools/pom.xml b/tools/pom.xml index e730520740..3e39599bcc 100644 --- a/tools/pom.xml +++ b/tools/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/tools/yang-model-validator/pom.xml b/tools/yang-model-validator/pom.xml index 33a3244c0e..419daa62c6 100644 --- a/tools/yang-model-validator/pom.xml +++ b/tools/yang-model-validator/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent - 9.0.13 + 10.0.0 diff --git a/tools/yang-validation-tool/pom.xml b/tools/yang-validation-tool/pom.xml index 6eb4804197..d6ee42ad83 100644 --- a/tools/yang-validation-tool/pom.xml +++ b/tools/yang-validation-tool/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent - 9.0.13 + 10.0.0 diff --git a/xpath/pom.xml b/xpath/pom.xml index d3314a3e4b..f7bb76dc11 100644 --- a/xpath/pom.xml +++ b/xpath/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/yang/pom.xml b/yang/pom.xml index 314a9adaef..4b8055db40 100644 --- a/yang/pom.xml +++ b/yang/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/yang/yang-repo-spi/src/main/java/org/opendaylight/yangtools/yang/model/repo/spi/AbstractSchemaRepository.java b/yang/yang-repo-spi/src/main/java/org/opendaylight/yangtools/yang/model/repo/spi/AbstractSchemaRepository.java index d889bf6337..33d0c01e7a 100644 --- a/yang/yang-repo-spi/src/main/java/org/opendaylight/yangtools/yang/model/repo/spi/AbstractSchemaRepository.java +++ b/yang/yang-repo-spi/src/main/java/org/opendaylight/yangtools/yang/model/repo/spi/AbstractSchemaRepository.java @@ -18,7 +18,6 @@ import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; @@ -137,8 +136,6 @@ public abstract class AbstractSchemaRepository implements SchemaRepository, Sche } } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private synchronized void removeSource(final PotentialSchemaSource source, final SchemaSourceRegistration reg) { final Multimap, AbstractSchemaSourceRegistration> m = -- 2.36.6