Index: /trunk/build.xml
===================================================================
--- /trunk/build.xml	(revision 18331)
+++ /trunk/build.xml	(revision 18332)
@@ -1146,4 +1146,8 @@
     </target>
     <target name="ivy-checkdepsupdate" description="Display dependency updates on the console" depends="resolve">
+        <ivy:resolve log="quiet" file="${tools.ivy}" keep="true" conf="*"/>
+        <ivy:checkdepsupdate/>
+        <echo message="${line.separator}"/>
+        <ivy:resolve log="quiet" file="${base.dir}/ivy.xml" keep="true" conf="*"/>
         <ivy:checkdepsupdate/>
     </target>
Index: /trunk/ivy.xml
===================================================================
--- /trunk/ivy.xml	(revision 18331)
+++ /trunk/ivy.xml	(revision 18332)
@@ -25,11 +25,11 @@
         <dependency conf="api->default" org="org.glassfish" name="javax.json" rev="1.1.4"/>
         <dependency conf="api->default" org="org.apache.commons" name="commons-jcs3-core" rev="3.0"/>
-        <dependency conf="api->default" org="org.apache.commons" name="commons-compress" rev="1.20"/>
+        <dependency conf="api->default" org="org.apache.commons" name="commons-compress" rev="1.21"/>
         <dependency conf="api->default" org="com.google.code.findbugs" name="jsr305" rev="3.0.2"/>
         <dependency conf="api->default" org="org.tukaani" name="xz" rev="1.9"/>
         <dependency conf="api->default" org="com.adobe.xmp" name="xmpcore" rev="6.1.11"/>
         <dependency conf="api->default" org="com.drewnoakes" name="metadata-extractor" rev="2.16.0" transitive="false"/>
-        <dependency conf="api->default" org="com.formdev" name="svgSalamander" rev="1.1.2.4"/>
-        <dependency conf="api->default" org="ch.poole" name="OpeningHoursParser" rev="0.24.0"/>
+        <dependency conf="api->default" org="com.formdev" name="svgSalamander" rev="1.1.3"/>
+        <dependency conf="api->default" org="ch.poole" name="OpeningHoursParser" rev="0.26.0"/>
         <dependency conf="api->default" org="oauth.signpost" name="signpost-core" rev="2.1.1"/>
         <dependency conf="api->default" org="org.webjars.npm" name="tag2link" rev="2021.3.21"/>
@@ -39,11 +39,11 @@
         <dependency conf="sources->sources" org="org.glassfish" name="javax.json" rev="1.1.4"/>
         <dependency conf="sources->sources" org="org.apache.commons" name="commons-jcs3-core" rev="3.0"/>
-        <dependency conf="sources->sources" org="org.apache.commons" name="commons-compress" rev="1.20"/>
+        <dependency conf="sources->sources" org="org.apache.commons" name="commons-compress" rev="1.21"/>
         <dependency conf="sources->sources" org="com.google.code.findbugs" name="jsr305" rev="3.0.2"/>
         <dependency conf="sources->sources" org="org.tukaani" name="xz" rev="1.9"/>
         <dependency conf="sources->sources" org="com.adobe.xmp" name="xmpcore" rev="6.1.11"/>
         <dependency conf="sources->sources" org="com.drewnoakes" name="metadata-extractor" rev="2.16.0" transitive="false"/>
-        <dependency conf="sources->sources" org="com.formdev" name="svgSalamander" rev="1.1.2.4"/>
-        <dependency conf="sources->sources" org="ch.poole" name="OpeningHoursParser" rev="0.24.0"/>
+        <dependency conf="sources->sources" org="com.formdev" name="svgSalamander" rev="1.1.3"/>
+        <dependency conf="sources->sources" org="ch.poole" name="OpeningHoursParser" rev="0.26.0"/>
         <dependency conf="sources->sources" org="oauth.signpost" name="signpost-core" rev="2.1.1"/>
         <dependency conf="sources->default" org="org.webjars.npm" name="tag2link" rev="2021.3.21"/><!-- sources->default sic! (tag2link-sources.jar is empty, see #19335) -->
@@ -57,17 +57,17 @@
         <!-- test->default -->
         <dependency conf="test->default" org="com.github.spotbugs" name="spotbugs-annotations" rev="4.5.2"/>
-        <dependency conf="test->default" org="com.ginsberg" name="junit5-system-exit" rev="1.1.1"/>
-        <dependency conf="test->default" org="com.github.tomakehurst" name="wiremock" rev="2.27.2"/>
-        <dependency conf="test->default" org="io.github.classgraph" name="classgraph" rev="4.8.110"/>
-        <dependency conf="test->default" org="org.junit.platform" name="junit-platform-launcher" rev="1.7.2"/>
-        <dependency conf="test->default" org="org.junit.vintage" name="junit-vintage-engine" rev="5.7.2"/>
-        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-params" rev="5.7.2"/>
-        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-api" rev="5.7.2"/>
-        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-engine" rev="5.7.2"/>
-        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-migrationsupport" rev="5.7.2"/>
+        <dependency conf="test->default" org="com.ginsberg" name="junit5-system-exit" rev="1.1.2"/>
+        <dependency conf="test->default" org="com.github.tomakehurst" name="wiremock-jre8" rev="2.32.0"/>
+        <dependency conf="test->default" org="io.github.classgraph" name="classgraph" rev="4.8.138"/>
+        <dependency conf="test->default" org="org.junit.platform" name="junit-platform-launcher" rev="1.8.2"/>
+        <dependency conf="test->default" org="org.junit.vintage" name="junit-vintage-engine" rev="5.8.2"/>
+        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-params" rev="5.8.2"/>
+        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-api" rev="5.8.2"/>
+        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-engine" rev="5.8.2"/>
+        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-migrationsupport" rev="5.8.2"/>
         <dependency conf="test->default" org="net.trajano.commons" name="commons-testing" rev="2.1.0"/>
-        <dependency conf="test->default" org="nl.jqno.equalsverifier" name="equalsverifier" rev="3.6.1"/>
+        <dependency conf="test->default" org="nl.jqno.equalsverifier" name="equalsverifier" rev="3.8.1"/>
         <dependency conf="test->default" org="org.apache.commons" name="commons-lang3" rev="3.12.0"/>
-        <dependency conf="test->default" org="org.awaitility" name="awaitility" rev="4.1.0"/>
+        <dependency conf="test->default" org="org.awaitility" name="awaitility" rev="4.1.1"/>
     </dependencies>
 </ivy-module>
Index: /trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java	(revision 18331)
+++ /trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java	(revision 18332)
@@ -248,5 +248,5 @@
 
         protected void alertFilesWithUnknownImporter(Collection<File> files) {
-            final StringBuilder msg = new StringBuilder(128).append("<html>").append(
+            final StringBuilder msg = new StringBuilder(115 + 30 * files.size()).append("<html>").append(
                     trn("Cannot open {0} file because file does not exist or no suitable file importer is available.",
                         "Cannot open {0} files because files do not exist or no suitable file importer is available.",
Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 18331)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 18332)
@@ -264,11 +264,11 @@
             }
         } else {
-            if (mode == Mode.translate)
+            if (mode == Mode.translate) {
                 rv = new StringBuilder(tr("Move a segment along its normal, then release the mouse button."));
-            else if (mode == Mode.translate_node)
+            } else if (mode == Mode.translate_node) {
                 rv = new StringBuilder(tr("Move the node along one of the segments, then release the mouse button."));
-            else if (mode == Mode.extrude || mode == Mode.create_new)
+            } else if (mode == Mode.extrude || mode == Mode.create_new) {
                 rv = new StringBuilder(tr("Draw a rectangle of the desired size, then release the mouse button."));
-            else {
+            } else {
                 Logging.warn("Extrude: unknown mode " + mode);
                 rv = new StringBuilder();
Index: /trunk/src/org/openstreetmap/josm/data/osm/DefaultNameFormatter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/DefaultNameFormatter.java	(revision 18331)
+++ /trunk/src/org/openstreetmap/josm/data/osm/DefaultNameFormatter.java	(revision 18332)
@@ -566,10 +566,13 @@
         }
         if (sb.length() == 0) {
-            sb.append(
-                    way.hasKey("highway") ? tr("highway") :
-                    way.hasKey("railway") ? tr("railway") :
-                    way.hasKey("waterway") ? tr("waterway") :
-                    way.hasKey("landuse") ? tr("landuse") : ""
-                    );
+            if (way.hasKey("highway")) {
+                sb.append(tr("highway"));
+            } else if (way.hasKey("railway")) {
+                sb.append("railway");
+            } else if (way.hasKey("waterway")) {
+                sb.append(tr("waterway"));
+            } else if (way.hasKey("landuse")) {
+                sb.append(tr("landuse"));
+            }
         }
 
@@ -581,5 +584,9 @@
         /* note: length == 0 should no longer happen, but leave the bracket code
            nevertheless, who knows what future brings */
-        sb.append((sb.length() > 0) ? (" ("+nodes+')') : nodes);
+        if (sb.length() > 0) {
+            sb.append(" (").append(nodes).append(')');
+        } else {
+            sb.append(nodes);
+        }
         decorateNameWithId(sb, way);
         return sb.toString();
Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRenderer.java	(revision 18331)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRenderer.java	(revision 18332)
@@ -183,5 +183,5 @@
 
     /**
-     * Reads all the settings from preferences. Calls the @{link #getColors}
+     * Reads all the settings from preferences. Calls the {@link #getColors}
      * function.
      *
Index: /trunk/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java	(revision 18331)
+++ /trunk/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java	(revision 18332)
@@ -1991,5 +1991,5 @@
             char lastChar = input.charAt(length-1); // fetch original last char
             switch(lastChar) {
-                case '\u002E': // "." full stop
+                case '.':      // "." full stop, AKA U+002E
                 case '\u3002': // ideographic full stop
                 case '\uFF0E': // fullwidth full stop
Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/Addresses.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/Addresses.java	(revision 18331)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/Addresses.java	(revision 18332)
@@ -364,5 +364,5 @@
         LatLon centerA = a.getBBox().getCenter();
         LatLon centerB = b.getBBox().getCenter();
-        return (centerA.greatCircleDistance(centerB));
+        return centerA.greatCircleDistance(centerB);
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 18331)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 18332)
@@ -575,5 +575,5 @@
 
     /**
-     * Update selection status, call @{link #selectionChanged} function.
+     * Update selection status, call {@link #selectionChanged} function.
      */
     private void updateSelection() {
Index: /trunk/src/org/openstreetmap/josm/io/ozi/OziWptReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/ozi/OziWptReader.java	(revision 18331)
+++ /trunk/src/org/openstreetmap/josm/io/ozi/OziWptReader.java	(revision 18332)
@@ -74,5 +74,5 @@
                     } else {
                         try {
-                            String[] fields = line.split(",");
+                            String[] fields = line.split(",", -1);
                             WayPoint currentwp = new WayPoint(new LatLon(
                                     Double.parseDouble(fields[IDX_LAT]),
Index: /trunk/src/org/openstreetmap/josm/tools/HttpClient.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/HttpClient.java	(revision 18331)
+++ /trunk/src/org/openstreetmap/josm/tools/HttpClient.java	(revision 18332)
@@ -379,13 +379,14 @@
          * @see HttpURLConnection#getErrorStream()
          */
-        @SuppressWarnings("resource")
+        @SuppressWarnings({"resource",
+                /* All 4 `InputStream in` reassignments would close the original when the returned stream is closed */
+                "PMD.CloseResource"})
         public final InputStream getContent() throws IOException {
-            InputStream in = getInputStream();
-            in = new ProgressInputStream(in, getContentLength(), monitor);
-            in = "gzip".equalsIgnoreCase(getContentEncoding())
-                    ? new GZIPInputStream(in)
-                    : "deflate".equalsIgnoreCase(getContentEncoding())
-                    ? new InflaterInputStream(in)
-                    : in;
+            InputStream in = new ProgressInputStream(getInputStream(), getContentLength(), monitor);
+            if ("gzip".equalsIgnoreCase(getContentEncoding())) {
+                in = new GZIPInputStream(in);
+            } else if ("deflate".equalsIgnoreCase(getContentEncoding())) {
+                in = new InflaterInputStream(in);
+            }
             Compression compression = Compression.NONE;
             if (uncompress) {
Index: /trunk/test/unit/org/openstreetmap/josm/testutils/ThrowableRootCauseMatcher.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/testutils/ThrowableRootCauseMatcher.java	(revision 18331)
+++ /trunk/test/unit/org/openstreetmap/josm/testutils/ThrowableRootCauseMatcher.java	(revision 18332)
@@ -3,5 +3,4 @@
 
 import org.hamcrest.Description;
-import org.hamcrest.Factory;
 import org.hamcrest.Matcher;
 import org.hamcrest.TypeSafeMatcher;
@@ -54,5 +53,4 @@
      * @return new {@code ThrowableRootCauseMatcher} instance
      */
-    @Factory
     public static <T extends Throwable> Matcher<T> hasRootCause(final Matcher<T> matcher) {
         return new ThrowableRootCauseMatcher<>(matcher);
Index: /trunk/tools/checkstyle/src/org/openstreetmap/josm/TopLevelJavadocCheck.java
===================================================================
--- /trunk/tools/checkstyle/src/org/openstreetmap/josm/TopLevelJavadocCheck.java	(revision 18331)
+++ /trunk/tools/checkstyle/src/org/openstreetmap/josm/TopLevelJavadocCheck.java	(revision 18332)
@@ -87,5 +87,5 @@
     public void visitToken(DetailAST ast) {
         DetailAST parent = ast.getParent();
-        if (parent == null || parent.getType() == TokenTypes.EOF) {
+        if (parent == null || parent.getType() == TokenTypes.COMPILATION_UNIT) {
             foundTopLevelClass = true;
             if (!hasJavadoc(ast)) {
Index: /trunk/tools/ivy.xml
===================================================================
--- /trunk/tools/ivy.xml	(revision 18331)
+++ /trunk/tools/ivy.xml	(revision 18332)
@@ -17,10 +17,10 @@
         <dependency org="net.java.dev.javacc" name="javacc" rev="7.0.10" conf="javacc->default"/>
         <!-- checkstyle->default -->
-        <dependency org="com.puppycrawl.tools" name="checkstyle" rev="8.44" conf="checkstyle->default"/>
+        <dependency org="com.puppycrawl.tools" name="checkstyle" rev="9.2" conf="checkstyle->default"/>
         <!-- proguard->default -->
         <dependency org="com.guardsquare" name="proguard-ant" rev="7.2.0-beta4" conf="proguard->default"/>
         <!-- pmd->default -->
-        <dependency org="net.sourceforge.pmd" name="pmd-core" rev="6.20.0" conf="pmd->default"/>
-        <dependency org="net.sourceforge.pmd" name="pmd-java" rev="6.20.0" conf="pmd->default"/>
+        <dependency org="net.sourceforge.pmd" name="pmd-core" rev="6.41.0" conf="pmd->default"/>
+        <dependency org="net.sourceforge.pmd" name="pmd-java" rev="6.41.0" conf="pmd->default"/>
         <dependency org="net.sourceforge.saxon" name="saxon" rev="9.1.0.8" conf="pmd->default">
             <artifact name="saxon" type="jar"/>
@@ -28,8 +28,8 @@
         </dependency>
         <!-- spotbugs->default -->
-        <dependency org="com.github.spotbugs" name="spotbugs" rev="4.2.3" conf="spotbugs->default"/>
-        <dependency org="com.github.spotbugs" name="spotbugs-ant" rev="4.2.3" conf="spotbugs->default"/>
+        <dependency org="com.github.spotbugs" name="spotbugs" rev="4.5.2" conf="spotbugs->default"/>
+        <dependency org="com.github.spotbugs" name="spotbugs-ant" rev="4.5.2" conf="spotbugs->default"/>
         <!-- errorprone->default -->
-        <dependency org="com.google.errorprone" name="error_prone_core" rev="2.8.1" conf="errorprone->default"/>
+        <dependency org="com.google.errorprone" name="error_prone_core" rev="2.10.0" conf="errorprone->default"/>
         <!-- errorprone->default -->
         <dependency org="com.google.errorprone" name="javac" rev="9+181-r4173-1" conf="errorprone_javac->default"/>
Index: /trunk/tools/pmd/josm-ruleset.xml
===================================================================
--- /trunk/tools/pmd/josm-ruleset.xml	(revision 18331)
+++ /trunk/tools/pmd/josm-ruleset.xml	(revision 18332)
@@ -4,7 +4,7 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
- 
+
   <description>JOSM PMD ruleset</description>
- 
+
   <rule ref="category/java/bestpractices.xml">
     <exclude name="AccessorClassGeneration"/>
@@ -22,13 +22,15 @@
     <exclude name="JUnit4TestShouldUseAfterAnnotation"/>
     <exclude name="JUnit4TestShouldUseTestAnnotation"/>
+    <exclude name="LiteralsFirstInComparisons" reason="Introduced in 6.24, some positives in source code at this time. Replaces PositionLiteralsFirstInComparisons."/>
     <exclude name="LooseCoupling"/>
     <exclude name="MethodReturnsInternalArray"/>
     <exclude name="OneDeclarationPerLine"/>
-    <exclude name="PositionLiteralsFirstInComparisons"/>
     <exclude name="PreserveStackTrace"/>
     <exclude name="ReplaceHashtableWithMap"/>
     <exclude name="SwitchStmtsShouldHaveDefault"/>
     <exclude name="SystemPrintln"/>
+    <exclude name="UnusedAssignment" reason="Introduced in 6.26, some number of positives in source code at this time"/>
     <exclude name="UnusedFormalParameter"/>
+    <exclude name="UnusedPrivateMethod" reason="Broken since PMD 6.33, see https://github.com/pmd/pmd/issues/3468"/>
     <exclude name="UseVarargs"/>
   </rule>
@@ -40,5 +42,5 @@
   <rule ref="category/java/bestpractices.xml/UnusedFormalParameter">
     <properties>
-        <property name="violationSuppressXPath" value="//Annotation[MarkerAnnotation/Name/@Image='Deprecated']/..[MethodDeclaration|ConstructorDeclaration]"/>
+        <property name="violationSuppressXPath" value="//Annotation[MarkerAnnotation/Name/@SimpleName='Deprecated']/..[MethodDeclaration|ConstructorDeclaration]"/>
     </properties>
   </rule>
@@ -73,7 +75,8 @@
     <exclude name="ShortVariable"/>
     <exclude name="TooManyStaticImports"/>
+    <exclude name="UnnecessaryCast" reason="Introduced in 6.24, some positives in source code at this time"/>
     <exclude name="UnnecessaryConstructor"/>
+    <exclude name="UseUnderscoresInNumericLiterals"/>
     <exclude name="UselessParentheses"/>
-    <exclude name="UseUnderscoresInNumericLiterals"/>
     <exclude name="VariableNamingConventions"/>
     <exclude name="WhileLoopsMustUseBraces"/>
@@ -81,12 +84,12 @@
   <rule ref="category/java/codestyle.xml/ShortMethodName">
     <properties>
-        <property name="violationSuppressXPath" value="//MethodDeclarator[@Image='at' or @Image='ht' or @Image='of' or @Image='ok' or @Image='tr']
-          | //MethodDeclarator/../../Annotation/MarkerAnnotation/Name[@Image='Deprecated']
-          | //MethodDeclarator/../../../..[@Image='LambertConformalConic']"/>
+        <property name="violationSuppressXPath" value="//MethodDeclaration[@Name='at' or @Name='ht' or @Name='of' or @Name='ok' or @Name='tr']
+          | //MethodDeclaration/../../Annotation/MarkerAnnotation/Name[@Image='Deprecated']
+          | //MethodDeclaration/../../../..[@Image='LambertConformalConic']"/>
     </properties>
   </rule>
   <rule ref="category/java/codestyle.xml/MethodNamingConventions">
     <properties>
-        <property name="violationSuppressXPath" value="//MethodDeclarator/../../../..[@Image='Functions' or @Image='PseudoClasses' or @Image='Role' or @Image='TaggingPreset']"/>
+        <property name="violationSuppressXPath" value="//MethodDeclaration/../../..[@SimpleName='Functions' or @SimpleName='PseudoClasses' or @SimpleName='Role' or @SimpleName='TaggingPreset']"/>
     </properties>
   </rule>
@@ -96,15 +99,15 @@
         <property name="violationSuppressXPath" value="//FieldDeclaration[@Public='true']
           | //FieldDeclaration/../Annotation/MarkerAnnotation/Name[@Image='pref']
-          | //FieldDeclaration/Type/ReferenceType/ClassOrInterfaceType[@Image!='Boolean' and 
-                                                                       @Image!='Byte' and 
-                                                                       @Image!='Character' and 
-                                                                       @Image!='Class' and 
-                                                                       @Image!='Double' and 
-                                                                       @Image!='Enum' and 
-                                                                       @Image!='Float' and 
+          | //FieldDeclaration/Type/ReferenceType/ClassOrInterfaceType[@Image!='Boolean' and
+                                                                       @Image!='Byte' and
+                                                                       @Image!='Character' and
+                                                                       @Image!='Class' and
+                                                                       @Image!='Double' and
+                                                                       @Image!='Enum' and
+                                                                       @Image!='Float' and
                                                                        @Image!='Integer' and
                                                                        @Image!='Long' and
                                                                        @Image!='Number' and
-                                                                       @Image!='Short' and 
+                                                                       @Image!='Short' and
                                                                        @Image!='String' ]"/>
     </properties>
@@ -119,4 +122,5 @@
     <exclude name="AvoidDeeplyNestedIfStmts"/>
     <exclude name="AvoidRethrowingException"/>
+    <exclude name="CognitiveComplexity" reason="Introduced in 6.35, some number of positives in source code at this time"/>
     <exclude name="CollapsibleIfStatements"/>
     <exclude name="CouplingBetweenObjects"/>
@@ -133,4 +137,5 @@
     <exclude name="LawOfDemeter"/>
     <exclude name="LoosePackageCoupling"/>
+    <exclude name="MutableStaticState" reason="Introduced in 6.35, some number of positives in source code at this time"/>
     <exclude name="NcssCount"/>
     <exclude name="NPathComplexity"/>
@@ -168,9 +173,9 @@
     <exclude name="ConstructorCallsOverridableMethod"/>
     <exclude name="DataflowAnomalyAnalysis"/>
-    <exclude name="DoNotCallSystemExit"/>
+    <exclude name="DoNotTerminateVM"/>
     <exclude name="DontImportSun"/>
     <exclude name="EmptyIfStmt"/>
     <exclude name="EmptyWhileStmt"/>
-    <exclude name="MissingBreakInSwitch"/>
+    <exclude name="ImplicitSwitchFallThrough"/>
     <exclude name="MissingSerialVersionUID"/>
     <exclude name="MissingStaticMethodInNonInstantiatableClass"/>
@@ -178,4 +183,5 @@
     <exclude name="NullAssignment"/>
     <exclude name="ReturnEmptyArrayRatherThanNull"/>
+    <exclude name="ReturnEmptyCollectionRatherThanNull" reason="Introduced in 6.37, there are positives in source code at this time"/>
     <exclude name="SimpleDateFormatNeedsLocale"/>
     <exclude name="SingleMethodSingleton"/>
@@ -183,4 +189,9 @@
     <exclude name="TestClassWithoutTestCases"/>
     <exclude name="UseProperClassLoader"/>
+  </rule>
+  <rule ref="category/java/errorprone.xml/AvoidAccessibilityAlteration">
+    <properties>
+      <property name="violationSuppressXPath" value="//MethodDeclaration/../../..[@SimpleName='ReflectionUtils']"/>
+    </properties>
   </rule>
   <rule ref="category/java/performance.xml">
@@ -190,4 +201,5 @@
     <exclude name="InefficientEmptyStringCheck"/>
     <exclude name="SimplifyStartsWith"/>
+    <exclude name="InsufficientStringBufferDeclaration" reason="PMD 6.40 has a bug where it doesn't properly count appended strings in if statements."/>
     <exclude name="TooFewBranchesForASwitchStatement"/>
     <exclude name="UseArrayListInsteadOfVector"/>
