Ticket #21596: 21596.2.patch

File 21596.2.patch, 28.3 KB (added by taylor.smock, 3 years ago)
  • build.xml

    diff --git a/build.xml b/build.xml
    index bda1613d3e..4e9d883270 100644
    a b Build-Date: ${build.tstamp}  
    11491149        <ivy:report todir="${tools.dir}/ivy-report" graph="false"/>
    11501150    </target>
    11511151    <target name="ivy-checkdepsupdate" description="Display dependency updates on the console" depends="resolve">
     1152        <ivy:resolve log="download-only" file="${tools.ivy}" keep="true" conf="*"/>
    11521153        <ivy:checkdepsupdate/>
    11531154    </target>
    11541155    <target name="api-dependency-tree" description="Displays Ivy dependency tree for JOSM API" depends="resolve">
  • ivy.xml

    diff --git a/ivy.xml b/ivy.xml
    index d6fa0b3232..69388fcfc5 100644
    a b  
    2424        <dependency conf="api->default" org="javax.json" name="javax.json-api" rev="1.1.4"/>
    2525        <dependency conf="api->default" org="org.glassfish" name="javax.json" rev="1.1.4"/>
    2626        <dependency conf="api->default" org="org.apache.commons" name="commons-jcs3-core" rev="3.0"/>
    27         <dependency conf="api->default" org="org.apache.commons" name="commons-compress" rev="1.20"/>
     27        <dependency conf="api->default" org="org.apache.commons" name="commons-compress" rev="1.21"/>
    2828        <dependency conf="api->default" org="com.google.code.findbugs" name="jsr305" rev="3.0.2"/>
    2929        <dependency conf="api->default" org="org.tukaani" name="xz" rev="1.9"/>
    3030        <dependency conf="api->default" org="com.adobe.xmp" name="xmpcore" rev="6.1.11"/>
    3131        <dependency conf="api->default" org="com.drewnoakes" name="metadata-extractor" rev="2.16.0" transitive="false"/>
    3232        <dependency conf="api->default" org="com.formdev" name="svgSalamander" rev="1.1.2.4"/>
    33         <dependency conf="api->default" org="ch.poole" name="OpeningHoursParser" rev="0.24.0"/>
     33        <dependency conf="api->default" org="ch.poole" name="OpeningHoursParser" rev="0.26.0"/>
    3434        <dependency conf="api->default" org="oauth.signpost" name="signpost-core" rev="2.1.1"/>
    3535        <dependency conf="api->default" org="org.webjars.npm" name="tag2link" rev="2021.3.21"/>
    3636        <!-- sources->sources -->
     
    3838        <dependency conf="sources->sources" org="javax.json" name="javax.json-api" rev="1.1.4"/>
    3939        <dependency conf="sources->sources" org="org.glassfish" name="javax.json" rev="1.1.4"/>
    4040        <dependency conf="sources->sources" org="org.apache.commons" name="commons-jcs3-core" rev="3.0"/>
    41         <dependency conf="sources->sources" org="org.apache.commons" name="commons-compress" rev="1.20"/>
     41        <dependency conf="sources->sources" org="org.apache.commons" name="commons-compress" rev="1.21"/>
    4242        <dependency conf="sources->sources" org="com.google.code.findbugs" name="jsr305" rev="3.0.2"/>
    4343        <dependency conf="sources->sources" org="org.tukaani" name="xz" rev="1.9"/>
    4444        <dependency conf="sources->sources" org="com.adobe.xmp" name="xmpcore" rev="6.1.11"/>
    4545        <dependency conf="sources->sources" org="com.drewnoakes" name="metadata-extractor" rev="2.16.0" transitive="false"/>
    4646        <dependency conf="sources->sources" org="com.formdev" name="svgSalamander" rev="1.1.2.4"/>
    47         <dependency conf="sources->sources" org="ch.poole" name="OpeningHoursParser" rev="0.24.0"/>
     47        <dependency conf="sources->sources" org="ch.poole" name="OpeningHoursParser" rev="0.26.0"/>
    4848        <dependency conf="sources->sources" org="oauth.signpost" name="signpost-core" rev="2.1.1"/>
    4949        <dependency conf="sources->default" org="org.webjars.npm" name="tag2link" rev="2021.3.21"/><!-- sources->default sic! (tag2link-sources.jar is empty, see #19335) -->
    5050        <!-- commonslang->default -->
     
    5555        </dependency>
    5656        <dependency conf="jmockit->default" org="org.jmockit" name="jmockit" rev="1.49.a"/>
    5757        <!-- test->default -->
    58         <dependency conf="test->default" org="com.github.spotbugs" name="spotbugs-annotations" rev="4.3.0"/>
     58        <dependency conf="test->default" org="com.github.spotbugs" name="spotbugs-annotations" rev="4.5.0"/>
    5959        <dependency conf="test->default" org="com.ginsberg" name="junit5-system-exit" rev="1.1.1"/>
    60         <dependency conf="test->default" org="com.github.tomakehurst" name="wiremock" rev="2.27.2"/>
    61         <dependency conf="test->default" org="io.github.classgraph" name="classgraph" rev="4.8.110"/>
    62         <dependency conf="test->default" org="org.junit.platform" name="junit-platform-launcher" rev="1.7.2"/>
    63         <dependency conf="test->default" org="org.junit.vintage" name="junit-vintage-engine" rev="5.7.2"/>
    64         <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-params" rev="5.7.2"/>
    65         <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-api" rev="5.7.2"/>
    66         <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-engine" rev="5.7.2"/>
    67         <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-migrationsupport" rev="5.7.2"/>
     60        <dependency conf="test->default" org="com.github.tomakehurst" name="wiremock-jre8" rev="2.31.0"/>
     61        <dependency conf="test->default" org="io.github.classgraph" name="classgraph" rev="4.8.135"/>
     62        <dependency conf="test->default" org="org.junit.platform" name="junit-platform-launcher" rev="1.8.1"/>
     63        <dependency conf="test->default" org="org.junit.vintage" name="junit-vintage-engine" rev="5.8.1"/>
     64        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-params" rev="5.8.1"/>
     65        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-api" rev="5.8.1"/>
     66        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-engine" rev="5.8.1"/>
     67        <dependency conf="test->default" org="org.junit.jupiter" name="junit-jupiter-migrationsupport" rev="5.8.1"/>
    6868        <dependency conf="test->default" org="net.trajano.commons" name="commons-testing" rev="2.1.0"/>
    69         <dependency conf="test->default" org="nl.jqno.equalsverifier" name="equalsverifier" rev="3.6.1"/>
     69        <dependency conf="test->default" org="nl.jqno.equalsverifier" name="equalsverifier" rev="3.7.2"/>
    7070        <dependency conf="test->default" org="org.apache.commons" name="commons-lang3" rev="3.12.0"/>
    71         <dependency conf="test->default" org="org.awaitility" name="awaitility" rev="4.1.0"/>
     71        <dependency conf="test->default" org="org.awaitility" name="awaitility" rev="4.1.1"/>
    7272    </dependencies>
    7373</ivy-module>
  • src/org/openstreetmap/josm/actions/OpenFileAction.java

    diff --git a/src/org/openstreetmap/josm/actions/OpenFileAction.java b/src/org/openstreetmap/josm/actions/OpenFileAction.java
    index 70a2936342..b288284581 100644
    a b public class OpenFileAction extends DiskAccessAction {  
    247247        }
    248248
    249249        protected void alertFilesWithUnknownImporter(Collection<File> files) {
    250             final StringBuilder msg = new StringBuilder(128).append("<html>").append(
     250            final StringBuilder msg = new StringBuilder(115 + 30 * files.size()).append("<html>").append(
    251251                    trn("Cannot open {0} file because file does not exist or no suitable file importer is available.",
    252252                        "Cannot open {0} files because files do not exist or no suitable file importer is available.",
    253253                        files.size(),
  • src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java

    diff --git a/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java b/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
    index cd6419d304..3339dd2805 100644
    a b public class ExtrudeAction extends MapMode implements MapViewPaintable, KeyPress  
    263263                    rv.append(' ').append(tr("Segment collapsed due to its direction reversing."));
    264264            }
    265265        } else {
    266             if (mode == Mode.translate)
     266            if (mode == Mode.translate) {
    267267                rv = new StringBuilder(tr("Move a segment along its normal, then release the mouse button."));
    268             else if (mode == Mode.translate_node)
     268            } else if (mode == Mode.translate_node) {
    269269                rv = new StringBuilder(tr("Move the node along one of the segments, then release the mouse button."));
    270             else if (mode == Mode.extrude || mode == Mode.create_new)
     270            } else if (mode == Mode.extrude || mode == Mode.create_new) {
    271271                rv = new StringBuilder(tr("Draw a rectangle of the desired size, then release the mouse button."));
    272             else {
     272            } else {
    273273                Logging.warn("Extrude: unknown mode " + mode);
    274274                rv = new StringBuilder();
    275275            }
  • src/org/openstreetmap/josm/data/osm/DefaultNameFormatter.java

    diff --git a/src/org/openstreetmap/josm/data/osm/DefaultNameFormatter.java b/src/org/openstreetmap/josm/data/osm/DefaultNameFormatter.java
    index b81786b62f..300b63c5a9 100644
    a b public class DefaultNameFormatter implements NameFormatter, HistoryNameFormatter  
    565565            sb.append(way.get("ref"));
    566566        }
    567567        if (sb.length() == 0) {
    568             sb.append(
    569                     way.hasKey("highway") ? tr("highway") :
    570                     way.hasKey("railway") ? tr("railway") :
    571                     way.hasKey("waterway") ? tr("waterway") :
    572                     way.hasKey("landuse") ? tr("landuse") : ""
    573                     );
     568            if (way.hasKey("highway")) {
     569                sb.append(tr("highway"));
     570            } else if (way.hasKey("railway")) {
     571                sb.append("railway");
     572            } else if (way.hasKey("waterway")) {
     573                sb.append(tr("waterway"));
     574            } else if (way.hasKey("landuse")) {
     575                sb.append(tr("landuse"));
     576            }
    574577        }
    575578
    576579        int nodesNo = way.isClosed() ? (way.getNumNodes() -1) : way.getNumNodes();
    public class DefaultNameFormatter implements NameFormatter, HistoryNameFormatter  
    580583        }
    581584        /* note: length == 0 should no longer happen, but leave the bracket code
    582585           nevertheless, who knows what future brings */
    583         sb.append((sb.length() > 0) ? (" ("+nodes+')') : nodes);
     586        if (sb.length() > 0) {
     587            sb.append(" (").append(nodes).append(')');
     588        } else {
     589            sb.append(nodes);
     590        }
    584591        decorateNameWithId(sb, way);
    585592        return sb.toString();
    586593    }
  • src/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRenderer.java

    diff --git a/src/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRenderer.java b/src/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRenderer.java
    index 8569f52144..1d00a63aad 100644
    a b public abstract class AbstractMapRenderer implements Rendering {  
    182182    }
    183183
    184184    /**
    185      * Reads all the settings from preferences. Calls the @{link #getColors}
     185     * Reads all the settings from preferences. Calls the {@link #getColors}
    186186     * function.
    187187     *
    188188     * @param virtual <code>true</code> if virtual nodes are used
  • src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java

    diff --git a/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java b/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java
    index 6ddb1fb98e..fce0b91810 100644
    a b public final class DomainValidator extends AbstractValidator {  
    19691969     * @param input the string to convert, not null
    19701970     * @return converted input, or original input if conversion fails
    19711971     */
     1972    /* Ignore UnicodeEscape errors (ErrorProne doesn't like the switch statement, and using literals would be confusing) */
     1973    @SuppressWarnings("UnicodeEscape")
    19721974    // Needed by UrlValidator
    19731975    public static String unicodeToASCII(String input) {
    19741976        if (isOnlyASCII(input)) { // skip possibly expensive processing
    public final class DomainValidator extends AbstractValidator {  
    19901992            //            (halfwidth ideographic full stop).
    19911993            char lastChar = input.charAt(length-1); // fetch original last char
    19921994            switch(lastChar) {
    1993                 case '\u002E': // "." full stop
     1995                case '.':      // "." full stop, AKA U+002E
    19941996                case '\u3002': // ideographic full stop
    19951997                case '\uFF0E': // fullwidth full stop
    19961998                case '\uFF61': // halfwidth ideographic full stop
  • src/org/openstreetmap/josm/data/validation/tests/Addresses.java

    diff --git a/src/org/openstreetmap/josm/data/validation/tests/Addresses.java b/src/org/openstreetmap/josm/data/validation/tests/Addresses.java
    index 0c3473bc43..11170dee89 100644
    a b public class Addresses extends Test {  
    363363    static double getDistance(OsmPrimitive a, OsmPrimitive b) {
    364364        LatLon centerA = a.getBBox().getCenter();
    365365        LatLon centerB = b.getBBox().getCenter();
    366         return (centerA.greatCircleDistance(centerB));
     366        return centerA.greatCircleDistance(centerB);
    367367    }
    368368
    369369    protected void checkDistance(OsmPrimitive house, Collection<Way> street) {
  • src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java

    diff --git a/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java b/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
    index cb1818bb31..5fd62166f4 100644
    a b implements DataSelectionListener, ActiveLayerChangeListener, DataSetListenerAdap  
    574574    }
    575575
    576576    /**
    577      * Update selection status, call @{link #selectionChanged} function.
     577     * Update selection status, call {@link #selectionChanged} function.
    578578     */
    579579    private void updateSelection() {
    580580        // Parameter is ignored in this class
  • src/org/openstreetmap/josm/io/ozi/OziWptReader.java

    diff --git a/src/org/openstreetmap/josm/io/ozi/OziWptReader.java b/src/org/openstreetmap/josm/io/ozi/OziWptReader.java
    index 223ee85e57..0510b69329 100644
    a b public class OziWptReader implements IGpxReader {  
    7373                        Logging.trace(line);
    7474                    } else {
    7575                        try {
    76                             String[] fields = line.split(",");
     76                            String[] fields = line.split(",", -1);
    7777                            WayPoint currentwp = new WayPoint(new LatLon(
    7878                                    Double.parseDouble(fields[IDX_LAT]),
    7979                                    Double.parseDouble(fields[IDX_LON])));
  • src/org/openstreetmap/josm/tools/HttpClient.java

    diff --git a/src/org/openstreetmap/josm/tools/HttpClient.java b/src/org/openstreetmap/josm/tools/HttpClient.java
    index 9e9a7d89a5..18eb5964ec 100644
    a b public abstract class HttpClient {  
    378378         * @see HttpURLConnection#getInputStream()
    379379         * @see HttpURLConnection#getErrorStream()
    380380         */
    381         @SuppressWarnings("resource")
     381        @SuppressWarnings({"resource",
     382                /* All 4 `InputStream in` reassignments would close the original when the returned stream is closed */
     383                "PMD.CloseResource"})
    382384        public final InputStream getContent() throws IOException {
    383             InputStream in = getInputStream();
    384             in = new ProgressInputStream(in, getContentLength(), monitor);
    385             in = "gzip".equalsIgnoreCase(getContentEncoding())
    386                     ? new GZIPInputStream(in)
    387                     : "deflate".equalsIgnoreCase(getContentEncoding())
    388                     ? new InflaterInputStream(in)
    389                     : in;
     385            InputStream in = new ProgressInputStream(getInputStream(), getContentLength(), monitor);
     386            if ("gzip".equalsIgnoreCase(getContentEncoding())) {
     387                in = new GZIPInputStream(in);
     388            } else if ("deflate".equalsIgnoreCase(getContentEncoding())) {
     389                in = new InflaterInputStream(in);
     390            }
    390391            Compression compression = Compression.NONE;
    391392            if (uncompress) {
    392393                final String contentType = getContentType();
  • tools/checkstyle/src/org/openstreetmap/josm/TopLevelJavadocCheck.java

    diff --git a/tools/checkstyle/src/org/openstreetmap/josm/TopLevelJavadocCheck.java b/tools/checkstyle/src/org/openstreetmap/josm/TopLevelJavadocCheck.java
    index 26e59ee9ac..2c406dfabf 100644
    a b public class TopLevelJavadocCheck extends AbstractCheck {  
    8686    @Override
    8787    public void visitToken(DetailAST ast) {
    8888        DetailAST parent = ast.getParent();
    89         if (parent == null || parent.getType() == TokenTypes.EOF) {
     89        if (parent == null || parent.getType() == TokenTypes.COMPILATION_UNIT) {
    9090            foundTopLevelClass = true;
    9191            if (!hasJavadoc(ast)) {
    9292                this.log(ast.getLineNo(), "incomplete or missing Javadoc for top level class or interface");
  • tools/ivy.xml

    diff --git a/tools/ivy.xml b/tools/ivy.xml
    index 6a8202bb42..3fceb51515 100644
    a b  
    1717        <!-- javacc->default -->
    1818        <dependency org="net.java.dev.javacc" name="javacc" rev="7.0.10" conf="javacc->default"/>
    1919        <!-- checkstyle->default -->
    20         <dependency org="com.puppycrawl.tools" name="checkstyle" rev="8.44" conf="checkstyle->default"/>
     20        <dependency org="com.puppycrawl.tools" name="checkstyle" rev="9.1" conf="checkstyle->default"/>
    2121        <!-- proguard->default -->
    2222        <dependency org="com.guardsquare" name="proguard-ant" rev="7.2.0-beta2" conf="proguard->default"/>
    2323        <!-- pmd->default -->
    24         <dependency org="net.sourceforge.pmd" name="pmd-core" rev="6.20.0" conf="pmd->default"/>
    25         <dependency org="net.sourceforge.pmd" name="pmd-java" rev="6.20.0" conf="pmd->default"/>
     24        <dependency org="net.sourceforge.pmd" name="pmd-core" rev="6.40.0" conf="pmd->default"/>
     25        <dependency org="net.sourceforge.pmd" name="pmd-java" rev="6.40.0" conf="pmd->default"/>
    2626        <dependency org="net.sourceforge.saxon" name="saxon" rev="9.1.0.8" conf="pmd->default">
    2727            <artifact name="saxon" type="jar"/>
    2828            <artifact name="saxon" type="jar" maven:classifier="dom"/>
    2929        </dependency>
    3030        <!-- spotbugs->default -->
    31         <dependency org="com.github.spotbugs" name="spotbugs" rev="4.2.3" conf="spotbugs->default"/>
    32         <dependency org="com.github.spotbugs" name="spotbugs-ant" rev="4.2.3" conf="spotbugs->default"/>
     31        <dependency org="com.github.spotbugs" name="spotbugs" rev="4.5.0" conf="spotbugs->default"/>
     32        <dependency org="com.github.spotbugs" name="spotbugs-ant" rev="4.5.0" conf="spotbugs->default"/>
    3333        <!-- errorprone->default -->
    34         <dependency org="com.google.errorprone" name="error_prone_core" rev="2.8.1" conf="errorprone->default"/>
     34        <dependency org="com.google.errorprone" name="error_prone_core" rev="2.10.0" conf="errorprone->default"/>
    3535        <!-- errorprone->default -->
    3636        <dependency org="com.google.errorprone" name="javac" rev="9+181-r4173-1" conf="errorprone_javac->default"/>
    3737        <!-- semanticdb->default -->
  • tools/pmd/josm-ruleset.xml

    diff --git a/tools/pmd/josm-ruleset.xml b/tools/pmd/josm-ruleset.xml
    index 34676b4a8c..fde1d3d72d 100644
    a b  
    33    xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
    44    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    55    xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
    6  
     6
    77  <description>JOSM PMD ruleset</description>
    8  
     8
    99  <rule ref="category/java/bestpractices.xml">
    1010    <exclude name="AccessorClassGeneration"/>
    1111    <exclude name="AccessorMethodGeneration"/>
     
    2121    <exclude name="GuardLogStatement"/>
    2222    <exclude name="JUnit4TestShouldUseAfterAnnotation"/>
    2323    <exclude name="JUnit4TestShouldUseTestAnnotation"/>
     24    <exclude name="LiteralsFirstInComparisons" reason="Introduced in 6.24, some positives in source code at this time. Replaces PositionLiteralsFirstInComparisons."/>
    2425    <exclude name="LooseCoupling"/>
    2526    <exclude name="MethodReturnsInternalArray"/>
    2627    <exclude name="OneDeclarationPerLine"/>
    27     <exclude name="PositionLiteralsFirstInComparisons"/>
    2828    <exclude name="PreserveStackTrace"/>
    2929    <exclude name="ReplaceHashtableWithMap"/>
    3030    <exclude name="SwitchStmtsShouldHaveDefault"/>
    3131    <exclude name="SystemPrintln"/>
     32    <exclude name="UnusedAssignment" reason="Introduced in 6.26, some number of positives in source code at this time"/>
    3233    <exclude name="UnusedFormalParameter"/>
     34    <exclude name="UnusedPrivateMethod" reason="Broken since PMD 6.33, see https://github.com/pmd/pmd/issues/3468"/>
    3335    <exclude name="UseVarargs"/>
    3436  </rule>
    3537  <rule ref="category/java/bestpractices.xml/PreserveStackTrace">
     
    3941  </rule>
    4042  <rule ref="category/java/bestpractices.xml/UnusedFormalParameter">
    4143    <properties>
    42         <property name="violationSuppressXPath" value="//Annotation[MarkerAnnotation/Name/@Image='Deprecated']/..[MethodDeclaration|ConstructorDeclaration]"/>
     44        <property name="violationSuppressXPath" value="//Annotation[MarkerAnnotation/Name/@SimpleName='Deprecated']/..[MethodDeclaration|ConstructorDeclaration]"/>
    4345    </properties>
    4446  </rule>
    4547  <rule ref="category/java/codestyle.xml">
     
    7274    <exclude name="ShortMethodName"/>
    7375    <exclude name="ShortVariable"/>
    7476    <exclude name="TooManyStaticImports"/>
     77    <exclude name="UnnecessaryCast" reason="Introduced in 6.24, some positives in source code at this time"/>
    7578    <exclude name="UnnecessaryConstructor"/>
    76     <exclude name="UselessParentheses"/>
    7779    <exclude name="UseUnderscoresInNumericLiterals"/>
     80    <exclude name="UselessParentheses"/>
    7881    <exclude name="VariableNamingConventions"/>
    7982    <exclude name="WhileLoopsMustUseBraces"/>
    8083  </rule>
    8184  <rule ref="category/java/codestyle.xml/ShortMethodName">
    8285    <properties>
    83         <property name="violationSuppressXPath" value="//MethodDeclarator[@Image='at' or @Image='ht' or @Image='of' or @Image='ok' or @Image='tr']
    84           | //MethodDeclarator/../../Annotation/MarkerAnnotation/Name[@Image='Deprecated']
    85           | //MethodDeclarator/../../../..[@Image='LambertConformalConic']"/>
     86        <property name="violationSuppressXPath" value="//MethodDeclaration[@Name='at' or @Name='ht' or @Name='of' or @Name='ok' or @Name='tr']
     87          | //MethodDeclaration/../../Annotation/MarkerAnnotation/Name[@Image='Deprecated']
     88          | //MethodDeclaration/../../../..[@Image='LambertConformalConic']"/>
    8689    </properties>
    8790  </rule>
    8891  <rule ref="category/java/codestyle.xml/MethodNamingConventions">
    8992    <properties>
    90         <property name="violationSuppressXPath" value="//MethodDeclarator/../../../..[@Image='Functions' or @Image='PseudoClasses' or @Image='Role' or @Image='TaggingPreset']"/>
     93        <property name="violationSuppressXPath" value="//MethodDeclaration/../../..[@SimpleName='Functions' or @SimpleName='PseudoClasses' or @SimpleName='Role' or @SimpleName='TaggingPreset']"/>
    9194    </properties>
    9295  </rule>
    9396  <rule ref="category/java/codestyle.xml/FieldNamingConventions">
     
    9598        <property name="enumConstantPattern" value="[A-Za-z][A-Za-z_0-9]*"/>
    9699        <property name="violationSuppressXPath" value="//FieldDeclaration[@Public='true']
    97100          | //FieldDeclaration/../Annotation/MarkerAnnotation/Name[@Image='pref']
    98           | //FieldDeclaration/Type/ReferenceType/ClassOrInterfaceType[@Image!='Boolean' and 
    99                                                                        @Image!='Byte' and 
    100                                                                        @Image!='Character' and 
    101                                                                        @Image!='Class' and 
    102                                                                        @Image!='Double' and 
    103                                                                        @Image!='Enum' and 
    104                                                                        @Image!='Float' and 
     101          | //FieldDeclaration/Type/ReferenceType/ClassOrInterfaceType[@Image!='Boolean' and
     102                                                                       @Image!='Byte' and
     103                                                                       @Image!='Character' and
     104                                                                       @Image!='Class' and
     105                                                                       @Image!='Double' and
     106                                                                       @Image!='Enum' and
     107                                                                       @Image!='Float' and
    105108                                                                       @Image!='Integer' and
    106109                                                                       @Image!='Long' and
    107110                                                                       @Image!='Number' and
    108                                                                        @Image!='Short' and 
     111                                                                       @Image!='Short' and
    109112                                                                       @Image!='String' ]"/>
    110113    </properties>
    111114  </rule>
     
    118121    <exclude name="AvoidCatchingGenericException"/>
    119122    <exclude name="AvoidDeeplyNestedIfStmts"/>
    120123    <exclude name="AvoidRethrowingException"/>
     124    <exclude name="CognitiveComplexity" reason="Introduced in 6.35, some number of positives in source code at this time"/>
    121125    <exclude name="CollapsibleIfStatements"/>
    122126    <exclude name="CouplingBetweenObjects"/>
    123127    <exclude name="CyclomaticComplexity"/>
     
    132136    <exclude name="ImmutableField"/>
    133137    <exclude name="LawOfDemeter"/>
    134138    <exclude name="LoosePackageCoupling"/>
     139    <exclude name="MutableStaticState" reason="Introduced in 6.35, some number of positives in source code at this time"/>
    135140    <exclude name="NcssCount"/>
    136141    <exclude name="NPathComplexity"/>
    137142    <exclude name="SignatureDeclareThrowsException"/>
     
    167172    <exclude name="CompareObjectsWithEquals"/>
    168173    <exclude name="ConstructorCallsOverridableMethod"/>
    169174    <exclude name="DataflowAnomalyAnalysis"/>
    170     <exclude name="DoNotCallSystemExit"/>
     175    <exclude name="DoNotTerminateVM"/>
    171176    <exclude name="DontImportSun"/>
    172177    <exclude name="EmptyIfStmt"/>
    173178    <exclude name="EmptyWhileStmt"/>
    174     <exclude name="MissingBreakInSwitch"/>
     179    <exclude name="ImplicitSwitchFallThrough"/>
    175180    <exclude name="MissingSerialVersionUID"/>
    176181    <exclude name="MissingStaticMethodInNonInstantiatableClass"/>
    177182    <exclude name="NonStaticInitializer"/>
    178183    <exclude name="NullAssignment"/>
    179184    <exclude name="ReturnEmptyArrayRatherThanNull"/>
     185    <exclude name="ReturnEmptyCollectionRatherThanNull" reason="Introduced in 6.37, there are positives in source code at this time"/>
    180186    <exclude name="SimpleDateFormatNeedsLocale"/>
    181187    <exclude name="SingleMethodSingleton"/>
    182188    <exclude name="SingletonClassReturningNewInstance"/>
    183189    <exclude name="TestClassWithoutTestCases"/>
    184190    <exclude name="UseProperClassLoader"/>
    185191  </rule>
     192  <rule ref="category/java/errorprone.xml/AvoidAccessibilityAlteration">
     193    <properties>
     194      <property name="violationSuppressXPath" value="//MethodDeclaration/../../..[@SimpleName='ReflectionUtils']"/>
     195    </properties>
     196  </rule>
    186197  <rule ref="category/java/performance.xml">
    187198    <exclude name="AvoidInstantiatingObjectsInLoops"/>
    188199    <exclude name="AvoidUsingShortType"/>
    189200    <exclude name="ConsecutiveLiteralAppends"/>
    190201    <exclude name="InefficientEmptyStringCheck"/>
    191202    <exclude name="SimplifyStartsWith"/>
     203    <exclude name="InsufficientStringBufferDeclaration" reason="PMD 6.40 has a bug where it doesn't properly count appended strings in if statements."/>
    192204    <exclude name="TooFewBranchesForASwitchStatement"/>
    193205    <exclude name="UseArrayListInsteadOfVector"/>
    194206    <exclude name="UselessStringValueOf"/>