diff --git a/404.html b/404.html index 66791d0517..87eff1709b 100644 --- a/404.html +++ b/404.html @@ -1441,7 +1441,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
diff --git a/feed.xml b/feed.xml index 0574372993..c589ffd85c 100644 --- a/feed.xml +++ b/feed.xml @@ -5,8 +5,8 @@ Intended as a documentation theme based on Jekyll for technical writers documenting software and other technical products, this theme has all the elements you would need to handle multiple products with both multi-level sidebar navigation, tags, and other documentation features. https://pmd.github.io/pmd/ - Fri, 07 May 2021 10:57:08 +0000 - Fri, 07 May 2021 10:57:08 +0000 + Sat, 08 May 2021 17:11:38 +0000 + Sat, 08 May 2021 17:11:38 +0000 Jekyll v3.9.0 diff --git a/index.html b/index.html index 141f81d6ef..31343042cc 100644 --- a/index.html +++ b/index.html @@ -6433,7 +6433,7 @@ $('#filter a').click(function (e) {
diff --git a/js/mydoc_scroll.html b/js/mydoc_scroll.html index 9cbaa65645..1356456f46 100644 --- a/js/mydoc_scroll.html +++ b/js/mydoc_scroll.html @@ -1675,7 +1675,7 @@ $('#small-box-links').localScroll({
diff --git a/license.html b/license.html index 9173ecd6b0..09b7731d05 100644 --- a/license.html +++ b/license.html @@ -1685,7 +1685,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/news.html b/news.html index 88b37f483a..cfe538e0a2 100644 --- a/news.html +++ b/news.html @@ -1436,7 +1436,7 @@
diff --git a/news_archive.html b/news_archive.html index e646f9144e..02c6489198 100644 --- a/news_archive.html +++ b/news_archive.html @@ -1437,7 +1437,7 @@
diff --git a/pmd_about_help.html b/pmd_about_help.html index a7a1e31692..acdeb041ba 100644 --- a/pmd_about_help.html +++ b/pmd_about_help.html @@ -1461,7 +1461,7 @@ through the archives (archive1 diff --git a/pmd_apex_metrics_index.html b/pmd_apex_metrics_index.html index 39f7b93c8f..4b3276430a 100644 --- a/pmd_apex_metrics_index.html +++ b/pmd_apex_metrics_index.html @@ -1515,7 +1515,7 @@ flow statement.
diff --git a/pmd_devdocs_building.html b/pmd_devdocs_building.html index ca560d7a6f..98e506d913 100644 --- a/pmd_devdocs_building.html +++ b/pmd_devdocs_building.html @@ -1531,7 +1531,7 @@ please post here an
diff --git a/pmd_devdocs_development.html b/pmd_devdocs_development.html index a17ad97402..ab857dae08 100644 --- a/pmd_devdocs_development.html +++ b/pmd_devdocs_development.html @@ -1479,7 +1479,7 @@ every push. Each pull request is built as well.

diff --git a/pmd_devdocs_experimental_ast_dump.html b/pmd_devdocs_experimental_ast_dump.html index 1325bc5702..ca66c56cc5 100644 --- a/pmd_devdocs_experimental_ast_dump.html +++ b/pmd_devdocs_experimental_ast_dump.html @@ -1549,7 +1549,7 @@ with the name “a”.

diff --git a/pmd_devdocs_how_pmd_works.html b/pmd_devdocs_how_pmd_works.html index 9a201f3e22..e6f443a6d7 100644 --- a/pmd_devdocs_how_pmd_works.html +++ b/pmd_devdocs_how_pmd_works.html @@ -1495,7 +1495,7 @@ type resolution information and DFA nodes.
diff --git a/pmd_devdocs_major_adding_new_cpd_language.html b/pmd_devdocs_major_adding_new_cpd_language.html index 9e2b9856c6..deb2059b16 100644 --- a/pmd_devdocs_major_adding_new_cpd_language.html +++ b/pmd_devdocs_major_adding_new_cpd_language.html @@ -1594,7 +1594,7 @@ call the method doTest
diff --git a/pmd_devdocs_major_adding_new_language.html b/pmd_devdocs_major_adding_new_language.html index c225d2320b..9c564a28f0 100644 --- a/pmd_devdocs_major_adding_new_language.html +++ b/pmd_devdocs_major_adding_new_language.html @@ -1641,7 +1641,7 @@ This can be achieved with Rule Designer:

diff --git a/pmd_devdocs_major_adding_new_metrics_framework.html b/pmd_devdocs_major_adding_new_metrics_framework.html index 89cf57f617..71d836662f 100644 --- a/pmd_devdocs_major_adding_new_metrics_framework.html +++ b/pmd_devdocs_major_adding_new_metrics_framework.html @@ -1494,7 +1494,7 @@ build a Signature<N> diff --git a/pmd_devdocs_pmdtester.html b/pmd_devdocs_pmdtester.html index 9f1c2b8bf2..aa6b4a1c0c 100644 --- a/pmd_devdocs_pmdtester.html +++ b/pmd_devdocs_pmdtester.html @@ -1463,7 +1463,7 @@ Regression difference reports are commented back to the PR for the reviewer’s
diff --git a/pmd_devdocs_roadmap.html b/pmd_devdocs_roadmap.html index 1b9fd19414..f75b173683 100644 --- a/pmd_devdocs_roadmap.html +++ b/pmd_devdocs_roadmap.html @@ -1584,7 +1584,7 @@ This should be configurable on per Rule basis similar to TR and SymbolTable.

diff --git a/pmd_devdocs_rule_deprecation_policy.html b/pmd_devdocs_rule_deprecation_policy.html index 5bf21a98b1..6c55dceb29 100644 --- a/pmd_devdocs_rule_deprecation_policy.html +++ b/pmd_devdocs_rule_deprecation_policy.html @@ -1553,7 +1553,7 @@ major release of PMD.

diff --git a/pmd_devdocs_writing_documentation.html b/pmd_devdocs_writing_documentation.html index c7801ee5f7..62ff059506 100644 --- a/pmd_devdocs_writing_documentation.html +++ b/pmd_devdocs_writing_documentation.html @@ -1700,7 +1700,7 @@ by specifying -Dpmd.doc.check
diff --git a/pmd_java_metrics_index.html b/pmd_java_metrics_index.html index 1455ef46ad..b39904e312 100644 --- a/pmd_java_metrics_index.html +++ b/pmd_java_metrics_index.html @@ -1794,7 +1794,7 @@ In Proceedings ACM Symposium on Software Reusability, 1995.

diff --git a/pmd_languages_jsp.html b/pmd_languages_jsp.html index 8e70b9a926..7e04333f15 100644 --- a/pmd_languages_jsp.html +++ b/pmd_languages_jsp.html @@ -1494,7 +1494,7 @@ contains only “.java” files, JSP files obviously will not be checked.

diff --git a/pmd_languages_plsql.html b/pmd_languages_plsql.html index 4978ca7892..5124928c54 100644 --- a/pmd_languages_plsql.html +++ b/pmd_languages_plsql.html @@ -1481,7 +1481,7 @@ a custom XPath rule with the following expression:

diff --git a/pmd_next_major_development.html b/pmd_next_major_development.html index 2ca1aa26b1..39f9332376 100644 --- a/pmd_next_major_development.html +++ b/pmd_next_major_development.html @@ -2874,7 +2874,7 @@ which was introduced in PMD 6.26.0.

diff --git a/pmd_projectdocs_committers_infrastructure.html b/pmd_projectdocs_committers_infrastructure.html index a1de6eb976..2dc9fe2369 100644 --- a/pmd_projectdocs_committers_infrastructure.html +++ b/pmd_projectdocs_committers_infrastructure.html @@ -1525,7 +1525,7 @@ Login is via github.
diff --git a/pmd_projectdocs_committers_main_landing_page.html b/pmd_projectdocs_committers_main_landing_page.html index 1a2a8605a6..f49c7493e5 100644 --- a/pmd_projectdocs_committers_main_landing_page.html +++ b/pmd_projectdocs_committers_main_landing_page.html @@ -1533,7 +1533,7 @@ the new post is recognized and added to the news section and also on the news su
diff --git a/pmd_projectdocs_committers_merging_pull_requests.html b/pmd_projectdocs_committers_merging_pull_requests.html index 764f8b0d51..26a2e39fb2 100644 --- a/pmd_projectdocs_committers_merging_pull_requests.html +++ b/pmd_projectdocs_committers_merging_pull_requests.html @@ -1612,7 +1612,7 @@ integrated (e.g. gitk and github show the branches, from which the specific comm
diff --git a/pmd_projectdocs_committers_releasing.html b/pmd_projectdocs_committers_releasing.html index 8748040907..ffe08238a2 100644 --- a/pmd_projectdocs_committers_releasing.html +++ b/pmd_projectdocs_committers_releasing.html @@ -1841,7 +1841,7 @@ the maintenance branch needs to be set.

diff --git a/pmd_projectdocs_credits.html b/pmd_projectdocs_credits.html index 05641e1292..f3229f0cc1 100644 --- a/pmd_projectdocs_credits.html +++ b/pmd_projectdocs_credits.html @@ -1955,7 +1955,7 @@ PMD scoreboard formulas, pmd-dcpd optimizations
diff --git a/pmd_projectdocs_faq.html b/pmd_projectdocs_faq.html index 2998963760..23476195c2 100644 --- a/pmd_projectdocs_faq.html +++ b/pmd_projectdocs_faq.html @@ -1488,7 +1488,7 @@ You must take this into account for certain rules.

diff --git a/pmd_projectdocs_trivia_meaning.html b/pmd_projectdocs_trivia_meaning.html index 1d429e5fc7..f1acdb08df 100644 --- a/pmd_projectdocs_trivia_meaning.html +++ b/pmd_projectdocs_trivia_meaning.html @@ -1457,7 +1457,7 @@ really know. We just think the letters sound good together.

diff --git a/pmd_projectdocs_trivia_news.html b/pmd_projectdocs_trivia_news.html index 4f460b7dc4..b3c7d733be 100644 --- a/pmd_projectdocs_trivia_news.html +++ b/pmd_projectdocs_trivia_news.html @@ -1577,7 +1577,7 @@ interview with Ole-Martin and Tom

diff --git a/pmd_projectdocs_trivia_products.html b/pmd_projectdocs_trivia_products.html index 0ccabd348b..3f7653cd15 100644 --- a/pmd_projectdocs_trivia_products.html +++ b/pmd_projectdocs_trivia_products.html @@ -1505,7 +1505,7 @@ to catch web app security problems. Thanks to Joseph Hemler for the props!

diff --git a/pmd_projectdocs_trivia_similarprojects.html b/pmd_projectdocs_trivia_similarprojects.html index cef7499f49..40d111bbc8 100644 --- a/pmd_projectdocs_trivia_similarprojects.html +++ b/pmd_projectdocs_trivia_similarprojects.html @@ -1512,7 +1512,7 @@ only for maven project.
diff --git a/pmd_release_notes.html b/pmd_release_notes.html index 84610e60a8..8faf05f64d 100644 --- a/pmd_release_notes.html +++ b/pmd_release_notes.html @@ -1430,6 +1430,17 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3

New and noteworthy

+

Modified rules

+ +
    +
  • The Java rule CompareObjectsWithEquals has now a new property +typesThatCompareByReference. With that property, you can configure types, that should be whitelisted +for comparison by reference. By default, java.lang.Enum and java.lang.Class are allowed, but +you could add custom types here. +Additionally comparisons against constants are allowed now. This makes the rule less noisy when two constants +are compared. Constants are identified by looking for an all-caps identifier.
  • +
+

Fixed Issues

    @@ -1446,6 +1457,12 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
  • #3266: [java] LocalVariableCouldBeFinal: false negatives with interfaces, anon classes
+
  • java-errorprone +
      +
    • #3110: [java] Enhance CompareObjectsWithEquals with list of exceptions
    • +
    • #3205: [java] Make CompareObjectWithEquals allow comparing against constants
    • +
    +
  • API Changes

    @@ -1468,7 +1485,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_release_notes_old.html b/pmd_release_notes_old.html index 8235f22562..6c5ececa42 100644 --- a/pmd_release_notes_old.html +++ b/pmd_release_notes_old.html @@ -13707,7 +13707,7 @@ Added new HTML report format
    diff --git a/pmd_rules_apex.html b/pmd_rules_apex.html index 0c8f6507cf..061656ce28 100644 --- a/pmd_rules_apex.html +++ b/pmd_rules_apex.html @@ -1653,7 +1653,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_apex_bestpractices.html b/pmd_rules_apex_bestpractices.html index 89d681196b..7ebc912e05 100644 --- a/pmd_rules_apex_bestpractices.html +++ b/pmd_rules_apex_bestpractices.html @@ -1953,7 +1953,7 @@ Therefore delegate the triggers work to a regular class (often called Trigger ha
    diff --git a/pmd_rules_apex_codestyle.html b/pmd_rules_apex_codestyle.html index 42d6240a42..3b4182c8e9 100644 --- a/pmd_rules_apex_codestyle.html +++ b/pmd_rules_apex_codestyle.html @@ -2526,7 +2526,7 @@ controlled from the rest.

    diff --git a/pmd_rules_apex_design.html b/pmd_rules_apex_design.html index f45dfd5838..e9294d72ca 100644 --- a/pmd_rules_apex_design.html +++ b/pmd_rules_apex_design.html @@ -2483,7 +2483,7 @@ city/state/zip fields could park them within a single Address field.

    diff --git a/pmd_rules_apex_documentation.html b/pmd_rules_apex_documentation.html index eebbdebc96..f50c488027 100644 --- a/pmd_rules_apex_documentation.html +++ b/pmd_rules_apex_documentation.html @@ -1537,7 +1537,7 @@ order as the method signature.
    diff --git a/pmd_rules_apex_errorprone.html b/pmd_rules_apex_errorprone.html index 17f2a9af27..c8ab488719 100644 --- a/pmd_rules_apex_errorprone.html +++ b/pmd_rules_apex_errorprone.html @@ -2240,7 +2240,7 @@ dealing with legacy code.

    diff --git a/pmd_rules_apex_performance.html b/pmd_rules_apex_performance.html index 16e79ec518..904b6d9599 100644 --- a/pmd_rules_apex_performance.html +++ b/pmd_rules_apex_performance.html @@ -1710,7 +1710,7 @@ by the more general rule diff --git a/pmd_rules_apex_security.html b/pmd_rules_apex_security.html index 5f25f2a0b0..eb964fb94f 100644 --- a/pmd_rules_apex_security.html +++ b/pmd_rules_apex_security.html @@ -2129,7 +2129,7 @@ to avoid XSS attacks.

    diff --git a/pmd_rules_ecmascript.html b/pmd_rules_ecmascript.html index ffa8d43870..14be4034f7 100644 --- a/pmd_rules_ecmascript.html +++ b/pmd_rules_ecmascript.html @@ -1528,7 +1528,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_ecmascript_bestpractices.html b/pmd_rules_ecmascript_bestpractices.html index 0a2aa857c9..1f3ddab691 100644 --- a/pmd_rules_ecmascript_bestpractices.html +++ b/pmd_rules_ecmascript_bestpractices.html @@ -1652,7 +1652,7 @@ It also improves readability, if the base is given.

    diff --git a/pmd_rules_ecmascript_codestyle.html b/pmd_rules_ecmascript_codestyle.html index 757ec7bf1b..636a245d3a 100644 --- a/pmd_rules_ecmascript_codestyle.html +++ b/pmd_rules_ecmascript_codestyle.html @@ -1794,7 +1794,7 @@ will never execute. This is a bug, or extremely poor style.

    diff --git a/pmd_rules_ecmascript_errorprone.html b/pmd_rules_ecmascript_errorprone.html index 08cd779c2c..fceccde147 100644 --- a/pmd_rules_ecmascript_errorprone.html +++ b/pmd_rules_ecmascript_errorprone.html @@ -1575,7 +1575,7 @@ precision in a floating point number. This may result in numeric calculations b
    diff --git a/pmd_rules_java.html b/pmd_rules_java.html index 60379e7b6a..f19c80e80a 100644 --- a/pmd_rules_java.html +++ b/pmd_rules_java.html @@ -1655,7 +1655,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
  • CloneMethodReturnTypeMustMatchClassName: If a class implements cloneable the return type of the method clone() must be the class name. Tha…
  • CloneThrowsCloneNotSupportedException: The method clone() should throw a CloneNotSupportedException.
  • CloseResource: Ensure that resources (like ‘java.sql.Connection’, ‘java.sql.Statement’, and ‘java.sql.ResultSet’…
  • -
  • CompareObjectsWithEquals: Use equals() to compare object references; avoid comparing them with ==.
  • +
  • CompareObjectsWithEquals: Use ‘equals()’ to compare object references; avoid comparing them with ‘==’. Since comparing obje…
  • ConstructorCallsOverridableMethod: Calling overridable methods during construction poses a risk of invoking methods on an incomplete…
  • DataflowAnomalyAnalysis: Deprecated The dataflow analysis tracks local definitions, undefinitions and references to variables on diff…
  • DetachedTestCase: The method appears to be a test case since it has public or default visibility, non-static access…
  • @@ -2092,7 +2092,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_java_bestpractices.html b/pmd_rules_java_bestpractices.html index 837f43a012..fde6aca3fc 100644 --- a/pmd_rules_java_bestpractices.html +++ b/pmd_rules_java_bestpractices.html @@ -3796,7 +3796,7 @@ a block {} is sufficie
    diff --git a/pmd_rules_java_codestyle.html b/pmd_rules_java_codestyle.html index e79e832e46..eb3d8fb8b3 100644 --- a/pmd_rules_java_codestyle.html +++ b/pmd_rules_java_codestyle.html @@ -4697,7 +4697,7 @@ by the rule diff --git a/pmd_rules_java_design.html b/pmd_rules_java_design.html index 97da2a502f..7d4fa34c71 100644 --- a/pmd_rules_java_design.html +++ b/pmd_rules_java_design.html @@ -3988,7 +3988,7 @@ remember to add a private constructor to prevent instantiation.
    diff --git a/pmd_rules_java_documentation.html b/pmd_rules_java_documentation.html index 11d60c0eac..2898248974 100644 --- a/pmd_rules_java_documentation.html +++ b/pmd_rules_java_documentation.html @@ -1764,7 +1764,7 @@ empty methods.

    diff --git a/pmd_rules_java_errorprone.html b/pmd_rules_java_errorprone.html index ee696aaafa..b649521d4d 100644 --- a/pmd_rules_java_errorprone.html +++ b/pmd_rules_java_errorprone.html @@ -2773,19 +2773,30 @@ just remove "AutoCloseable" from the types.

    Priority: Medium (3)

    -

    Use equals() to compare object references; avoid comparing them with ==.

    +

    Use equals() to compare object references; avoid comparing them with ==.

    + +

    Since comparing objects with named constants is useful in some cases (eg, when +defining constants for sentinel values), the rule ignores comparisons against +fields with all-caps name (eg this == SENTINEL), which is a common naming +convention for constant fields.

    + +

    You may allow some types to be compared by reference by listing the exceptions +in the typesThatCompareByReference property.

    This rule is defined by the following XPath expression:

    //EqualityExpression
    -    [count(PrimaryExpression
    -        [pmd-java:typeIs('java.lang.Object')]
    -        [not(pmd-java:typeIs('java.lang.Enum'))]
    -        [not(pmd-java:typeIs('java.lang.Class'))]) = 2
    +    [count(
    +        PrimaryExpression[pmd-java:typeIs('java.lang.Object')]
    +        [not(some $t in $typesThatCompareByReference satisfies pmd-java:typeIs($t))]
    +       ) = 2
         ]
         [not(PrimaryExpression[PrimaryPrefix/@ThisModifier = true()]
                               [not(PrimarySuffix)]
                               [ancestor::MethodDeclaration[@Name = 'equals']])
         ]
    +    (: Is not a field access with an all-caps identifier :)
    +    [not(PrimaryExpression[not(PrimarySuffix) and PrimaryPrefix/Name[upper-case(@Image)=@Image]
    +     or PrimaryExpression/PrimarySuffix[last()][upper-case(@Image)=@Image]])]
     

    Example(s):

    @@ -2797,10 +2808,39 @@ just remove "AutoCloseable" from the types.

    }
    -

    Use this rule by referencing it:

    +

    This rule has the following properties:

    + + + + + + + + + + + + + + + + + + +
    NameDefault ValueDescriptionMultivalued
    typesThatCompareByReferencejava.lang.Enum , java.lang.ClassList of canonical type names for which reference comparison is allowed.yes. Delimiter is ‘,’.
    + +

    Use this rule with the default properties by just referencing it:

    <rule ref="category/java/errorprone.xml/CompareObjectsWithEquals" />
     
    +

    Use this rule and customize it:

    +
    <rule ref="category/java/errorprone.xml/CompareObjectsWithEquals">
    +    <properties>
    +        <property name="typesThatCompareByReference" value="java.lang.Enum,java.lang.Class" />
    +    </properties>
    +</rule>
    +
    +

    ConstructorCallsOverridableMethod

    Since: PMD 1.04

    @@ -5226,7 +5266,7 @@ Thread.currentThread().getContextClassLoader() instead.

    diff --git a/pmd_rules_java_multithreading.html b/pmd_rules_java_multithreading.html index 7238aac1d5..e79ac06b04 100644 --- a/pmd_rules_java_multithreading.html +++ b/pmd_rules_java_multithreading.html @@ -1950,7 +1950,7 @@ one is chosen. The thread chosen is arbitrary; thus its usually safer to call n
    diff --git a/pmd_rules_java_performance.html b/pmd_rules_java_performance.html index 649c06721f..e3bead56a2 100644 --- a/pmd_rules_java_performance.html +++ b/pmd_rules_java_performance.html @@ -2578,7 +2578,7 @@ or StringBuffer.toString().length() == …

    diff --git a/pmd_rules_java_security.html b/pmd_rules_java_security.html index 5df53b25a1..21d24f3241 100644 --- a/pmd_rules_java_security.html +++ b/pmd_rules_java_security.html @@ -1501,7 +1501,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_jsp.html b/pmd_rules_jsp.html index fc5897f7d6..b07c281ae9 100644 --- a/pmd_rules_jsp.html +++ b/pmd_rules_jsp.html @@ -1510,7 +1510,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_jsp_bestpractices.html b/pmd_rules_jsp_bestpractices.html index 9b31b1a0a9..e49ae5ba6f 100644 --- a/pmd_rules_jsp_bestpractices.html +++ b/pmd_rules_jsp_bestpractices.html @@ -1543,7 +1543,7 @@ little other purpose. Consider switching to JSP comments.

    diff --git a/pmd_rules_jsp_codestyle.html b/pmd_rules_jsp_codestyle.html index 94a2dd6ee1..b873384c38 100644 --- a/pmd_rules_jsp_codestyle.html +++ b/pmd_rules_jsp_codestyle.html @@ -1460,7 +1460,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_jsp_design.html b/pmd_rules_jsp_design.html index 492e0c88f2..64e1ee5e65 100644 --- a/pmd_rules_jsp_design.html +++ b/pmd_rules_jsp_design.html @@ -1551,7 +1551,7 @@ onload=calcDays;
    diff --git a/pmd_rules_jsp_errorprone.html b/pmd_rules_jsp_errorprone.html index 7302e0e2fb..ae120c5438 100644 --- a/pmd_rules_jsp_errorprone.html +++ b/pmd_rules_jsp_errorprone.html @@ -1472,7 +1472,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_jsp_security.html b/pmd_rules_jsp_security.html index c4fbd112fe..ff6060378e 100644 --- a/pmd_rules_jsp_security.html +++ b/pmd_rules_jsp_security.html @@ -1493,7 +1493,7 @@ ${fn:escapeXml(expression)} <!-- instead, escape it --&g
    diff --git a/pmd_rules_modelica.html b/pmd_rules_modelica.html index a5b8d9c14b..f7b3f10b24 100644 --- a/pmd_rules_modelica.html +++ b/pmd_rules_modelica.html @@ -1459,7 +1459,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_modelica_bestpractices.html b/pmd_rules_modelica_bestpractices.html index 7967234784..cb3eb0c5f5 100644 --- a/pmd_rules_modelica_bestpractices.html +++ b/pmd_rules_modelica_bestpractices.html @@ -1535,7 +1535,7 @@ end Example;
    diff --git a/pmd_rules_plsql.html b/pmd_rules_plsql.html index 6604969b8b..df698c373c 100644 --- a/pmd_rules_plsql.html +++ b/pmd_rules_plsql.html @@ -1539,7 +1539,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_plsql_bestpractices.html b/pmd_rules_plsql_bestpractices.html index 9569a99bf2..05d5c61800 100644 --- a/pmd_rules_plsql_bestpractices.html +++ b/pmd_rules_plsql_bestpractices.html @@ -1501,7 +1501,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_plsql_codestyle.html b/pmd_rules_plsql_codestyle.html index 5a8d3baa5b..2a86f2d33d 100644 --- a/pmd_rules_plsql_codestyle.html +++ b/pmd_rules_plsql_codestyle.html @@ -1785,7 +1785,7 @@ https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/static.htm#BABIIHBJ

    diff --git a/pmd_rules_plsql_design.html b/pmd_rules_plsql_design.html index 1a7f18047c..9aa0a85cd9 100644 --- a/pmd_rules_plsql_design.html +++ b/pmd_rules_plsql_design.html @@ -2425,7 +2425,7 @@ have more fine grained objects.

    diff --git a/pmd_rules_plsql_errorprone.html b/pmd_rules_plsql_errorprone.html index 015d4f8796..55ec2d7f41 100644 --- a/pmd_rules_plsql_errorprone.html +++ b/pmd_rules_plsql_errorprone.html @@ -1570,7 +1570,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_pom.html b/pmd_rules_pom.html index 8b98a04125..c4eda48706 100644 --- a/pmd_rules_pom.html +++ b/pmd_rules_pom.html @@ -1472,7 +1472,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_pom_errorprone.html b/pmd_rules_pom_errorprone.html index dc7f092179..7fd17cc88c 100644 --- a/pmd_rules_pom_errorprone.html +++ b/pmd_rules_pom_errorprone.html @@ -1541,7 +1541,7 @@ By far the most common problem is the use of ${project.version} in a BOM or pare
    diff --git a/pmd_rules_scala.html b/pmd_rules_scala.html index ebbfe8cf45..9099f17898 100644 --- a/pmd_rules_scala.html +++ b/pmd_rules_scala.html @@ -1454,7 +1454,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_vf.html b/pmd_rules_vf.html index 405df049d7..89c3b230d3 100644 --- a/pmd_rules_vf.html +++ b/pmd_rules_vf.html @@ -1473,7 +1473,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_vf_security.html b/pmd_rules_vf_security.html index f03625fa4b..1119c4f80e 100644 --- a/pmd_rules_vf_security.html +++ b/pmd_rules_vf_security.html @@ -1516,7 +1516,7 @@ on
    diff --git a/pmd_rules_vm.html b/pmd_rules_vm.html index 2d50544ba6..5b89a0df43 100644 --- a/pmd_rules_vm.html +++ b/pmd_rules_vm.html @@ -1493,7 +1493,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_vm_bestpractices.html b/pmd_rules_vm_bestpractices.html index 5ad0e2469e..8a7a2cbad3 100644 --- a/pmd_rules_vm_bestpractices.html +++ b/pmd_rules_vm_bestpractices.html @@ -1469,7 +1469,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_vm_design.html b/pmd_rules_vm_design.html index d9b713f268..c7a4ae45fc 100644 --- a/pmd_rules_vm_design.html +++ b/pmd_rules_vm_design.html @@ -1583,7 +1583,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_vm_errorprone.html b/pmd_rules_vm_errorprone.html index a74f68dea4..ac180a3e35 100644 --- a/pmd_rules_vm_errorprone.html +++ b/pmd_rules_vm_errorprone.html @@ -1469,7 +1469,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_xml.html b/pmd_rules_xml.html index 9a66e99c29..db2582b53f 100644 --- a/pmd_rules_xml.html +++ b/pmd_rules_xml.html @@ -1471,7 +1471,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_xml_errorprone.html b/pmd_rules_xml_errorprone.html index 794c3c20c1..1e465a1194 100644 --- a/pmd_rules_xml_errorprone.html +++ b/pmd_rules_xml_errorprone.html @@ -1473,7 +1473,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_xsl.html b/pmd_rules_xsl.html index d1c50a14b9..492a0de6da 100644 --- a/pmd_rules_xsl.html +++ b/pmd_rules_xsl.html @@ -1479,7 +1479,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_xsl_codestyle.html b/pmd_rules_xsl_codestyle.html index 1cb94312ab..88e5923fdd 100644 --- a/pmd_rules_xsl_codestyle.html +++ b/pmd_rules_xsl_codestyle.html @@ -1464,7 +1464,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_rules_xsl_performance.html b/pmd_rules_xsl_performance.html index 1d29598980..7d348f42cc 100644 --- a/pmd_rules_xsl_performance.html +++ b/pmd_rules_xsl_performance.html @@ -1507,7 +1507,7 @@ cutting through 100% of the document.

    diff --git a/pmd_userdocs_best_practices.html b/pmd_userdocs_best_practices.html index a8d9a5c1ae..d3377c0247 100644 --- a/pmd_userdocs_best_practices.html +++ b/pmd_userdocs_best_practices.html @@ -1476,7 +1476,7 @@ and soon you’ll be fixing problems much faster.

    diff --git a/pmd_userdocs_cli_reference.html b/pmd_userdocs_cli_reference.html index 52c24f28cb..0591f5ecfe 100644 --- a/pmd_userdocs_cli_reference.html +++ b/pmd_userdocs_cli_reference.html @@ -2095,7 +2095,7 @@ All formats are described at
    PMD Repo
    diff --git a/pmd_userdocs_configuring_rules.html b/pmd_userdocs_configuring_rules.html index 2204f93425..ab8a402a05 100644 --- a/pmd_userdocs_configuring_rules.html +++ b/pmd_userdocs_configuring_rules.html @@ -1502,7 +1502,7 @@ will cause the rule to be ignored.

    diff --git a/pmd_userdocs_cpd.html b/pmd_userdocs_cpd.html index fbae24c777..fd1a2c6b35 100644 --- a/pmd_userdocs_cpd.html +++ b/pmd_userdocs_cpd.html @@ -2481,7 +2481,7 @@ the comment based approach will be extended to those of them that can support it
    diff --git a/pmd_userdocs_cpd_report_formats.html b/pmd_userdocs_cpd_report_formats.html index f555923230..0b8878fd50 100644 --- a/pmd_userdocs_cpd_report_formats.html +++ b/pmd_userdocs_cpd_report_formats.html @@ -1653,7 +1653,7 @@ is shown in the console. You can then click on the filenames to jump to the sour
    diff --git a/pmd_userdocs_extending_defining_properties.html b/pmd_userdocs_extending_defining_properties.html index 0be6f3e1cb..053439bd80 100644 --- a/pmd_userdocs_extending_defining_properties.html +++ b/pmd_userdocs_extending_defining_properties.html @@ -1652,7 +1652,7 @@ are supported.

    diff --git a/pmd_userdocs_extending_designer_reference.html b/pmd_userdocs_extending_designer_reference.html index 00744e4953..981301454d 100644 --- a/pmd_userdocs_extending_designer_reference.html +++ b/pmd_userdocs_extending_designer_reference.html @@ -1691,7 +1691,7 @@ The available language modules are those on the classpath of the app’s JVM. Th
    diff --git a/pmd_userdocs_extending_metrics_howto.html b/pmd_userdocs_extending_metrics_howto.html index a273504d0c..5b0ad4326e 100644 --- a/pmd_userdocs_extending_metrics_howto.html +++ b/pmd_userdocs_extending_metrics_howto.html @@ -1777,7 +1777,7 @@ classes. Here’s the default behaviour by language and type of metric:

    diff --git a/pmd_userdocs_extending_rule_guidelines.html b/pmd_userdocs_extending_rule_guidelines.html index 0d94396c88..a0951f0a53 100644 --- a/pmd_userdocs_extending_rule_guidelines.html +++ b/pmd_userdocs_extending_rule_guidelines.html @@ -1481,7 +1481,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/pmd_userdocs_extending_testing.html b/pmd_userdocs_extending_testing.html index 158d9d87dc..72d3cffccc 100644 --- a/pmd_userdocs_extending_testing.html +++ b/pmd_userdocs_extending_testing.html @@ -1757,7 +1757,7 @@ will be executed twice.

    diff --git a/pmd_userdocs_extending_writing_java_rules.html b/pmd_userdocs_extending_writing_java_rules.html index 2122bc4411..eb47477a1f 100644 --- a/pmd_userdocs_extending_writing_java_rules.html +++ b/pmd_userdocs_extending_writing_java_rules.html @@ -1609,7 +1609,7 @@ the file
    diff --git a/pmd_userdocs_extending_writing_pmd_rules.html b/pmd_userdocs_extending_writing_pmd_rules.html index 856204890a..15d288c523 100644 --- a/pmd_userdocs_extending_writing_pmd_rules.html +++ b/pmd_userdocs_extending_writing_pmd_rules.html @@ -1473,7 +1473,7 @@ your rule
    diff --git a/pmd_userdocs_extending_writing_rules_intro.html b/pmd_userdocs_extending_writing_rules_intro.html index 95e114e691..295674adb3 100644 --- a/pmd_userdocs_extending_writing_rules_intro.html +++ b/pmd_userdocs_extending_writing_rules_intro.html @@ -1591,7 +1591,7 @@ your rule
    diff --git a/pmd_userdocs_extending_writing_xpath_rules.html b/pmd_userdocs_extending_writing_xpath_rules.html index b56df4b086..1c315cfa26 100644 --- a/pmd_userdocs_extending_writing_xpath_rules.html +++ b/pmd_userdocs_extending_writing_xpath_rules.html @@ -1871,7 +1871,7 @@ deprecated and whose usages should be replaced with uses of diff --git a/pmd_userdocs_extending_your_first_rule.html b/pmd_userdocs_extending_your_first_rule.html index 13238e9be2..493ad94043 100644 --- a/pmd_userdocs_extending_your_first_rule.html +++ b/pmd_userdocs_extending_your_first_rule.html @@ -1580,7 +1580,7 @@ of a rule of type XPathRule, which is how XPath rules are implemented.

    diff --git a/pmd_userdocs_incremental_analysis.html b/pmd_userdocs_incremental_analysis.html index 2019d04c84..454f42b81f 100644 --- a/pmd_userdocs_incremental_analysis.html +++ b/pmd_userdocs_incremental_analysis.html @@ -1556,7 +1556,7 @@ same execution classpath).

    diff --git a/pmd_userdocs_installation.html b/pmd_userdocs_installation.html index 76206973a3..d90e4f3450 100644 --- a/pmd_userdocs_installation.html +++ b/pmd_userdocs_installation.html @@ -1609,7 +1609,7 @@ directory or a jar or zip file containing the sources.
    diff --git a/pmd_userdocs_making_rulesets.html b/pmd_userdocs_making_rulesets.html index 6e075e06c9..cbedacb78e 100644 --- a/pmd_userdocs_making_rulesets.html +++ b/pmd_userdocs_making_rulesets.html @@ -1559,7 +1559,7 @@ a single rule reference.
    diff --git a/pmd_userdocs_report_formats.html b/pmd_userdocs_report_formats.html index 0d616106ff..90ce4aa8a2 100644 --- a/pmd_userdocs_report_formats.html +++ b/pmd_userdocs_report_formats.html @@ -1822,7 +1822,7 @@ The output directory must exist. If not specified, the html files are created in
    diff --git a/pmd_userdocs_suppressing_warnings.html b/pmd_userdocs_suppressing_warnings.html index c0dbb7a9a7..359103229b 100644 --- a/pmd_userdocs_suppressing_warnings.html +++ b/pmd_userdocs_suppressing_warnings.html @@ -1660,7 +1660,7 @@ violations you wish to suppress. XPath queries are explained in
    diff --git a/pmd_userdocs_tools.html b/pmd_userdocs_tools.html index 2a29793d00..9cbda5d42c 100644 --- a/pmd_userdocs_tools.html +++ b/pmd_userdocs_tools.html @@ -1900,7 +1900,7 @@ the (blank Command Results) document, and then confirming that, “yes, I do rea
    diff --git a/pmd_userdocs_tools_ant.html b/pmd_userdocs_tools_ant.html index 98471f1d6f..ca0f4a498c 100644 --- a/pmd_userdocs_tools_ant.html +++ b/pmd_userdocs_tools_ant.html @@ -1879,7 +1879,7 @@ To prevent this from happening, increase the maximum memory usable by ant using
    diff --git a/pmd_userdocs_tools_ci.html b/pmd_userdocs_tools_ci.html index 3b39cbd680..7e61f03850 100644 --- a/pmd_userdocs_tools_ci.html +++ b/pmd_userdocs_tools_ci.html @@ -1466,7 +1466,7 @@ result of the PMD maven plugin.

    diff --git a/pmd_userdocs_tools_gradle.html b/pmd_userdocs_tools_gradle.html index 822deb1bb1..fb03ba2197 100644 --- a/pmd_userdocs_tools_gradle.html +++ b/pmd_userdocs_tools_gradle.html @@ -1509,7 +1509,7 @@ with the property toolVersion
    diff --git a/pmd_userdocs_tools_java_api.html b/pmd_userdocs_tools_java_api.html index 832ce3c978..b57f75c155 100644 --- a/pmd_userdocs_tools_java_api.html +++ b/pmd_userdocs_tools_java_api.html @@ -1725,7 +1725,7 @@ Then you can check the rendered output.

    diff --git a/pmd_userdocs_tools_maven.html b/pmd_userdocs_tools_maven.html index 652ca7fa7c..3a29cead68 100644 --- a/pmd_userdocs_tools_maven.html +++ b/pmd_userdocs_tools_maven.html @@ -1724,7 +1724,7 @@ the previous paragraph. Add the following property to your project now:

    diff --git a/tag_devdocs.html b/tag_devdocs.html index 658988c574..a8d8f4e75a 100644 --- a/tag_devdocs.html +++ b/tag_devdocs.html @@ -1954,7 +1954,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/tag_extending.html b/tag_extending.html index b088788f06..19143d4203 100644 --- a/tag_extending.html +++ b/tag_extending.html @@ -1978,7 +1978,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/tag_getting_started.html b/tag_getting_started.html index 9276352749..36b9a39986 100644 --- a/tag_getting_started.html +++ b/tag_getting_started.html @@ -1912,7 +1912,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/tag_languages.html b/tag_languages.html index c076d6c2d8..685b42a715 100644 --- a/tag_languages.html +++ b/tag_languages.html @@ -1888,7 +1888,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/tag_metrics.html b/tag_metrics.html index 44621fcb15..5724422a47 100644 --- a/tag_metrics.html +++ b/tag_metrics.html @@ -1912,7 +1912,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/tag_release_notes.html b/tag_release_notes.html index c6eb129cbf..1f99408ffd 100644 --- a/tag_release_notes.html +++ b/tag_release_notes.html @@ -1888,7 +1888,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/tag_rule_references.html b/tag_rule_references.html index ebd7362203..b0e87e61b6 100644 --- a/tag_rule_references.html +++ b/tag_rule_references.html @@ -1960,7 +1960,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/tag_tools.html b/tag_tools.html index 2f3c669dc5..ec87462331 100644 --- a/tag_tools.html +++ b/tag_tools.html @@ -1924,7 +1924,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/tag_troubleshooting.html b/tag_troubleshooting.html index 0e0059dba7..b42ad7a9bf 100644 --- a/tag_troubleshooting.html +++ b/tag_troubleshooting.html @@ -1888,7 +1888,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
    diff --git a/tag_userdocs.html b/tag_userdocs.html index ab0129e380..5db08e090e 100644 --- a/tag_userdocs.html +++ b/tag_userdocs.html @@ -2044,7 +2044,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3