diff --git a/404.html b/404.html index d00c5a1542..a553bef36a 100644 --- a/404.html +++ b/404.html @@ -1303,7 +1303,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
Signature<N>
from a
diff --git a/pmd_devdocs_roadmap.html b/pmd_devdocs_roadmap.html
index 97a7192a42..9e9e743812 100644
--- a/pmd_devdocs_roadmap.html
+++ b/pmd_devdocs_roadmap.html
@@ -1446,7 +1446,7 @@ This should be configurable on per Rule basis similar to TR and SymbolTable.
diff --git a/pmd_devdocs_writing_documentation.html b/pmd_devdocs_writing_documentation.html
index 0c2447b62a..33b7bef2b9 100644
--- a/pmd_devdocs_writing_documentation.html
+++ b/pmd_devdocs_writing_documentation.html
@@ -1562,7 +1562,7 @@ by specifying
-Dpmd.doc.checkExternalLinks=true<
diff --git a/pmd_java_metrics_index.html b/pmd_java_metrics_index.html
index c035901611..8972b9de22 100644
--- a/pmd_java_metrics_index.html
+++ b/pmd_java_metrics_index.html
@@ -1656,7 +1656,7 @@ In Proceedings ACM Symposium on Software Reusability, 1995.
diff --git a/pmd_languages_jsp.html b/pmd_languages_jsp.html
index 03bad57887..1363a04b7e 100644
--- a/pmd_languages_jsp.html
+++ b/pmd_languages_jsp.html
@@ -1356,7 +1356,7 @@ contains only “.java” files, JSP files obviously will not be checked.
diff --git a/pmd_next_major_development.html b/pmd_next_major_development.html
index 42018cb00e..bce0a28b13 100644
--- a/pmd_next_major_development.html
+++ b/pmd_next_major_development.html
@@ -1933,7 +1933,7 @@ will be removed with PMD 7.0.0. The rule is replaced by the more general
diff --git a/pmd_projectdocs_committers_merging_pull_requests.html b/pmd_projectdocs_committers_merging_pull_requests.html
index 4d6eb7245e..f56746725e 100644
--- a/pmd_projectdocs_committers_merging_pull_requests.html
+++ b/pmd_projectdocs_committers_merging_pull_requests.html
@@ -1474,7 +1474,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 33f29e2043..25af913341 100644
--- a/pmd_projectdocs_committers_releasing.html
+++ b/pmd_projectdocs_committers_releasing.html
@@ -1512,7 +1512,7 @@ and
mvn versions:set -DnewVersion=5.7.0-SNAPSHOT
diff --git a/pmd_projectdocs_credits.html b/pmd_projectdocs_credits.html
index d2b9855b12..4b88b07000 100644
--- a/pmd_projectdocs_credits.html
+++ b/pmd_projectdocs_credits.html
@@ -1817,7 +1817,7 @@ PMD scoreboard formulas, pmd-dcpd optimizations
diff --git a/pmd_projectdocs_faq.html b/pmd_projectdocs_faq.html
index 4196287cd4..ae91e4d1d7 100644
--- a/pmd_projectdocs_faq.html
+++ b/pmd_projectdocs_faq.html
@@ -1350,7 +1350,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 b2df6bf81e..d7ffaf812b 100644
--- a/pmd_projectdocs_trivia_meaning.html
+++ b/pmd_projectdocs_trivia_meaning.html
@@ -1319,7 +1319,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 dfbdccd905..09109adf5e 100644
--- a/pmd_projectdocs_trivia_news.html
+++ b/pmd_projectdocs_trivia_news.html
@@ -1439,7 +1439,7 @@ interview with Ole-Martin and Tom
diff --git a/pmd_projectdocs_trivia_products.html b/pmd_projectdocs_trivia_products.html
index cbdafe0b66..24caaa6ae5 100644
--- a/pmd_projectdocs_trivia_products.html
+++ b/pmd_projectdocs_trivia_products.html
@@ -1366,7 +1366,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 8b88afe356..6162519a9e 100644
--- a/pmd_projectdocs_trivia_similarprojects.html
+++ b/pmd_projectdocs_trivia_similarprojects.html
@@ -1374,7 +1374,7 @@ only for maven project.
diff --git a/pmd_release_notes.html b/pmd_release_notes.html
index ed85407716..b10e6d5aca 100644
--- a/pmd_release_notes.html
+++ b/pmd_release_notes.html
@@ -1337,6 +1337,7 @@ server.
core
- #2014: [core] Making add(SourceCode sourceCode) public for alternative file systems
+ - #2020: [core] Wrong deprecation warnings for unused XPath attributes
- #2036: [core] Wrong include/exclude patterns are silently ignored
- #2067: [core] Build issue on Windows
- #2068: [core] Rule loader should use the same resources loader for the ruleset
@@ -1472,7 +1473,7 @@ except
diff --git a/pmd_rules_apex.html b/pmd_rules_apex.html
index 980d364464..dce5ccbcda 100644
--- a/pmd_rules_apex.html
+++ b/pmd_rules_apex.html
@@ -1510,7 +1510,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 19cbeb6d7b..96b5cdbb45 100644
--- a/pmd_rules_apex_bestpractices.html
+++ b/pmd_rules_apex_bestpractices.html
@@ -1758,7 +1758,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 c75eb67846..2b91f9022c 100644
--- a/pmd_rules_apex_codestyle.html
+++ b/pmd_rules_apex_codestyle.html
@@ -2329,7 +2329,7 @@ controlled from the rest.
diff --git a/pmd_rules_apex_design.html b/pmd_rules_apex_design.html
index 2293d9bb8b..b05c58452d 100644
--- a/pmd_rules_apex_design.html
+++ b/pmd_rules_apex_design.html
@@ -2226,7 +2226,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 1858091ed3..f47ef4a908 100644
--- a/pmd_rules_apex_documentation.html
+++ b/pmd_rules_apex_documentation.html
@@ -1376,7 +1376,7 @@ order as the method signature.
diff --git a/pmd_release_notes_old.html b/pmd_release_notes_old.html
index bc69db94f8..966ab8b835 100644
--- a/pmd_release_notes_old.html
+++ b/pmd_release_notes_old.html
@@ -10655,7 +10655,7 @@ Added new HTML report format
diff --git a/pmd_rules_apex_errorprone.html b/pmd_rules_apex_errorprone.html
index 5252c3a982..b121d0fcd5 100644
--- a/pmd_rules_apex_errorprone.html
+++ b/pmd_rules_apex_errorprone.html
@@ -1861,7 +1861,7 @@ a while loop that does a lot in the exit expression, rewrite it to make it clear
diff --git a/pmd_rules_apex_performance.html b/pmd_rules_apex_performance.html
index b08e9c47d9..76684d1e07 100644
--- a/pmd_rules_apex_performance.html
+++ b/pmd_rules_apex_performance.html
@@ -1479,7 +1479,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
diff --git a/pmd_rules_apex_security.html b/pmd_rules_apex_security.html
index 95ef78227a..0fc770610d 100644
--- a/pmd_rules_apex_security.html
+++ b/pmd_rules_apex_security.html
@@ -1965,7 +1965,7 @@ to avoid XSS attacks.
diff --git a/pmd_rules_ecmascript.html b/pmd_rules_ecmascript.html
index e5ddc95e0f..b83f50a18c 100644
--- a/pmd_rules_ecmascript.html
+++ b/pmd_rules_ecmascript.html
@@ -1392,7 +1392,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 94c56b3807..705edee10e 100644
--- a/pmd_rules_ecmascript_bestpractices.html
+++ b/pmd_rules_ecmascript_bestpractices.html
@@ -1514,7 +1514,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 e4d5d688d6..98f722d706 100644
--- a/pmd_rules_ecmascript_codestyle.html
+++ b/pmd_rules_ecmascript_codestyle.html
@@ -1656,7 +1656,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 baa44f6cdf..9951940293 100644
--- a/pmd_rules_ecmascript_errorprone.html
+++ b/pmd_rules_ecmascript_errorprone.html
@@ -1438,7 +1438,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 4b09a25a31..0b97aeb402 100644
--- a/pmd_rules_java.html
+++ b/pmd_rules_java.html
@@ -1948,7 +1948,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 6e058ad3d6..7a30f5eb58 100644
--- a/pmd_rules_java_bestpractices.html
+++ b/pmd_rules_java_bestpractices.html
@@ -3342,7 +3342,7 @@ a block
{}
is sufficient.
diff --git a/pmd_rules_java_codestyle.html b/pmd_rules_java_codestyle.html
index 713e91514f..765fbb74b6 100644
--- a/pmd_rules_java_codestyle.html
+++ b/pmd_rules_java_codestyle.html
@@ -1624,13 +1624,13 @@ I.e, ‘isReady()’, ‘hasValues()’, ‘canCommit()’, ‘willFail()’, et
prefix for these methods.
This rule is defined by the following XPath expression:
-//MethodDeclaration[
-MethodDeclarator[count(FormalParameters/FormalParameter) = 0 or $checkParameterizedMethods = 'true']
- [starts-with(@Image, 'get')]
-and
-ResultType/Type/PrimitiveType[@Image = 'boolean']
-and not(../Annotation//Name[@Image = 'Override'])
-]
+//MethodDeclaration
+ [starts-with(@Name, 'get')]
+ [@Arity = 0 or $checkParameterizedMethods = 'true']
+ [
+ ResultType/Type/PrimitiveType[@Image = 'boolean']
+ and not(../Annotation//Name[@Image = 'Override'])
+ ]
Example(s):
@@ -3530,7 +3530,7 @@ by the more general rule
Method names that are very short are not helpful to the reader.
This rule is defined by the following XPath expression:
-//MethodDeclarator[string-length(@Image) < $minimum]
+//MethodDeclaration[string-length(@Name) < $minimum]
Example(s):
@@ -4435,7 +4435,7 @@ by the rule
diff --git a/pmd_rules_java_design.html b/pmd_rules_java_design.html
index ca60238a49..63541f3a9b 100644
--- a/pmd_rules_java_design.html
+++ b/pmd_rules_java_design.html
@@ -3628,13 +3628,13 @@ complexity and find a way to have more fine grained objects.
This rule is defined by the following XPath expression:
//ClassOrInterfaceDeclaration/ClassOrInterfaceBody
[
- count(./ClassOrInterfaceBodyDeclaration/MethodDeclaration/MethodDeclarator[
+ count(./ClassOrInterfaceBodyDeclaration/MethodDeclaration[
not (
- starts-with(@Image,'get')
+ starts-with(@Name,'get')
or
- starts-with(@Image,'set')
+ starts-with(@Name,'set')
or
- starts-with(@Image,'is')
+ starts-with(@Name,'is')
)
]) > $maxmethods
]
@@ -3843,7 +3843,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 663f30a011..d459661263 100644
--- a/pmd_rules_java_documentation.html
+++ b/pmd_rules_java_documentation.html
@@ -1618,7 +1618,7 @@ empty methods.
diff --git a/pmd_rules_java_errorprone.html b/pmd_rules_java_errorprone.html
index 442359bd60..509884ecdf 100644
--- a/pmd_rules_java_errorprone.html
+++ b/pmd_rules_java_errorprone.html
@@ -2214,16 +2214,16 @@ It is likely that you used || instead of && or vice versa.
Super should be called at the start of the method
This rule is defined by the following XPath expression:
-//MethodDeclaration[MethodDeclarator[
- @Image='onCreate' or
- @Image='onConfigurationChanged' or
- @Image='onPostCreate' or
- @Image='onPostResume' or
- @Image='onRestart' or
- @Image='onRestoreInstanceState' or
- @Image='onResume' or
- @Image='onStart'
- ]]
+//MethodDeclaration[
+ @Name='onCreate' or
+ @Name='onConfigurationChanged' or
+ @Name='onPostCreate' or
+ @Name='onPostResume' or
+ @Name='onRestart' or
+ @Name='onRestoreInstanceState' or
+ @Name='onResume' or
+ @Name='onStart'
+ ]
/Block[not(
(BlockStatement[1]/Statement/StatementExpression/PrimaryExpression[./PrimaryPrefix[@SuperModifier='true']]/PrimarySuffix[@Image= ancestor::MethodDeclaration/MethodDeclarator/@Image]))]
[ancestor::ClassOrInterfaceDeclaration[ExtendsList/ClassOrInterfaceType[
@@ -2256,14 +2256,14 @@ It is likely that you used || instead of && or vice versa.
Super should be called at the end of the method
This rule is defined by the following XPath expression:
-//MethodDeclaration[MethodDeclarator[
- @Image='finish' or
- @Image='onDestroy' or
- @Image='onPause' or
- @Image='onSaveInstanceState' or
- @Image='onStop' or
- @Image='onTerminate'
- ]]
+//MethodDeclaration[
+ @Name='finish' or
+ @Name='onDestroy' or
+ @Name='onPause' or
+ @Name='onSaveInstanceState' or
+ @Name='onStop' or
+ @Name='onTerminate'
+ ]
/Block/BlockStatement[last()]
[not(Statement/StatementExpression/PrimaryExpression[./PrimaryPrefix[@SuperModifier='true']]/PrimarySuffix[@Image= ancestor::MethodDeclaration/MethodDeclarator/@Image])]
[ancestor::ClassOrInterfaceDeclaration[ExtendsList/ClassOrInterfaceType[
@@ -2371,8 +2371,8 @@ Object.clone (which is protected) with a public method."
This rule is defined by the following XPath expression:
//MethodDeclaration[@Public='false']
- [MethodDeclarator/@Image = 'clone']
- [MethodDeclarator/FormalParameters/@ParameterCount = 0]
+ [@Name = 'clone']
+ [@Arity = 0]
Example(s):
@@ -2441,8 +2441,8 @@ of the clone method doesn’t need to cast the returned clone to the correct typ
This rule is defined by the following XPath expression:
//MethodDeclaration
[
-MethodDeclarator/@Image = 'clone'
-and MethodDeclarator/FormalParameters/@ParameterCount = 0
+@Name = 'clone'
+and @Arity = 0
and not (ResultType//ClassOrInterfaceType/@Image = ancestor::ClassOrInterfaceDeclaration[1]/@Image)
]
@@ -2477,8 +2477,8 @@ of the clone method doesn’t need to cast the returned clone to the correct typ
This rule is defined by the following XPath expression:
//MethodDeclaration
[
-MethodDeclarator/@Image = 'clone'
-and count(MethodDeclarator/FormalParameters/*) = 0
+@Name = 'clone'
+and @Arity = 0
and count(NameList/Name[contains
(@Image,'CloneNotSupportedException')]) = 0
]
@@ -3081,7 +3081,7 @@ or reported.
Empty finalize methods serve no purpose and should be removed. Note that Oracle has declared Object.finalize() as deprecated since JDK 9.
This rule is defined by the following XPath expression:
-//MethodDeclaration[MethodDeclarator[@Image='finalize'][not(FormalParameters/*)]]
+//MethodDeclaration[@Name='finalize'][@Arity = 0]
/Block[count(*)=0]
@@ -3406,7 +3406,7 @@ a while loop that does a lot in the exit expression, rewrite it to make it clear
If the finalize() is implemented, its last action should be to call super.finalize. Note that Oracle has declared Object.finalize() as deprecated since JDK 9.
This rule is defined by the following XPath expression:
-//MethodDeclaration[MethodDeclarator[@Image='finalize'][not(FormalParameters/*)]]
+//MethodDeclaration[@Name='finalize'][@Arity = 0]
/Block
/BlockStatement[last()]
[not(Statement/StatementExpression/PrimaryExpression
@@ -3443,7 +3443,7 @@ a while loop that does a lot in the exit expression, rewrite it to make it clear
If the finalize() is implemented, it should do something besides just calling super.finalize(). Note that Oracle has declared Object.finalize() as deprecated since JDK 9.
This rule is defined by the following XPath expression:
-//MethodDeclaration[MethodDeclarator[@Image="finalize"][not(FormalParameters/*)]]
+//MethodDeclaration[@Name='finalize'][@Arity = 0]
/Block[count(BlockStatement)=1]
/BlockStatement[
Statement/StatementExpression/PrimaryExpression
@@ -3475,8 +3475,7 @@ overload Object.finalize(). It will not be called by the VM.
Note that Oracle has declared Object.finalize() as deprecated since JDK 9.
This rule is defined by the following XPath expression:
-//MethodDeclaration
- /MethodDeclarator[@Image='finalize'][FormalParameters[count(*)>0]]
+//MethodDeclaration[@Name='finalize'][@Arity > 0]
Example(s):
@@ -3504,9 +3503,7 @@ other classes may invoke it at inappropriate times.
Note that Oracle has declared Object.finalize() as deprecated since JDK 9.
This rule is defined by the following XPath expression:
-//MethodDeclaration[@Protected="false"]
- /MethodDeclarator[@Image="finalize"]
- [not(FormalParameters/*)]
+//MethodDeclaration[@Protected="false"][@Name='finalize'][@Arity = 0]
Example(s):
@@ -3662,11 +3659,11 @@ other classes may invoke it at inappropriate times.
Some JUnit framework methods are easy to misspell.
This rule is defined by the following XPath expression:
-//MethodDeclarator[(not(@Image = 'setUp')
- and translate(@Image, 'SETuP', 'setUp') = 'setUp')
- or (not(@Image = 'tearDown')
- and translate(@Image, 'TEARdOWN', 'tearDown') = 'tearDown')]
- [FormalParameters[count(*) = 0]]
+//MethodDeclaration[(not(@Name = 'setUp')
+ and translate(@Name, 'SETuP', 'setUp') = 'setUp')
+ or (not(@Name = 'tearDown')
+ and translate(@Name, 'TEARdOWN', 'tearDown') = 'tearDown')]
+ [@Arity = 0]
[ancestor::ClassOrInterfaceDeclaration[//ClassOrInterfaceType[pmd-java:typeIs('junit.framework.TestCase')]
or //MarkerAnnotation/Name[
pmd-java:typeIs('org.junit.Test')
@@ -3701,8 +3698,8 @@ other classes may invoke it at inappropriate times.
This rule is defined by the following XPath expression:
//MethodDeclaration[not(@Static='true') or not(@Public='true')]
-[MethodDeclarator/@Image='suite']
-[MethodDeclarator/FormalParameters/@ParameterCount=0]
+[@Name='suite']
+[@Arity = 0]
[ancestor::ClassOrInterfaceDeclaration[//ClassOrInterfaceType[pmd-java:typeIs('junit.framework.TestCase')]
or //MarkerAnnotation/Name[
pmd-java:typeIs('org.junit.Test')
@@ -4165,10 +4162,10 @@ of assignment is an indication that the programmer doesn’t completely understa
Object clone() should be implemented with super.clone().
This rule is defined by the following XPath expression:
-//MethodDeclarator
-[@Image = 'clone']
-[count(FormalParameters/*) = 0]
-[count(../Block//*[
+//MethodDeclaration
+[@Name = 'clone']
+[@Arity = 0]
+[count(./Block//*[
(self::AllocationExpression) and
(./ClassOrInterfaceType/@Image = ancestor::
ClassOrInterfaceDeclaration[1]/@Image)
@@ -4549,23 +4546,23 @@ new StringBuilder("A") // 1 + 16 = 17
intention to override the equals(Object) method.
This rule is defined by the following XPath expression:
-//MethodDeclarator[@Image = 'equals']
+//MethodDeclaration[@Name = 'equals']
[
- (count(FormalParameters/*) = 1
- and not (FormalParameters/FormalParameter/Type/ReferenceType/ClassOrInterfaceType
+ (@Arity = 1
+ and not (MethodDeclarator/FormalParameters/FormalParameter/Type/ReferenceType/ClassOrInterfaceType
[@Image = 'Object' or @Image = 'java.lang.Object'])
- or not (../ResultType/Type/PrimitiveType[@Image = 'boolean'])
+ or not (ResultType/Type/PrimitiveType[@Image = 'boolean'])
) or (
- count(FormalParameters/*) = 2
- and ../ResultType/Type/PrimitiveType[@Image = 'boolean']
- and FormalParameters//ClassOrInterfaceType[@Image = 'Object' or @Image = 'java.lang.Object']
- and not(../../Annotation/MarkerAnnotation/Name[@Image='Override'])
+ @Arity = 2
+ and ResultType/Type/PrimitiveType[@Image = 'boolean']
+ and MethodDeclarator/FormalParameters//ClassOrInterfaceType[@Image = 'Object' or @Image = 'java.lang.Object']
+ and not(../Annotation/MarkerAnnotation/Name[@Image='Override'])
)
]
-| //MethodDeclarator[@Image = 'equal']
+| //MethodDeclaration[@Name = 'equal']
[
- count(FormalParameters/*) = 1
- and FormalParameters/FormalParameter/Type/ReferenceType/ClassOrInterfaceType
+ @Arity = 1
+ and MethodDeclarator/FormalParameters/FormalParameter/Type/ReferenceType/ClassOrInterfaceType
[@Image = 'Object' or @Image = 'java.lang.Object']
]
@@ -5047,7 +5044,7 @@ Thread.currentThread().getContextClassLoader() instead.
diff --git a/pmd_rules_java_multithreading.html b/pmd_rules_java_multithreading.html
index 7a0e403262..2d2f8b7a5d 100644
--- a/pmd_rules_java_multithreading.html
+++ b/pmd_rules_java_multithreading.html
@@ -1774,7 +1774,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 26ba825ce1..7717b31f5b 100644
--- a/pmd_rules_java_performance.html
+++ b/pmd_rules_java_performance.html
@@ -2318,7 +2318,7 @@ or StringBuffer.toString().length() == …
diff --git a/pmd_rules_java_security.html b/pmd_rules_java_security.html
index 1496e13b3f..9d8479c2e9 100644
--- a/pmd_rules_java_security.html
+++ b/pmd_rules_java_security.html
@@ -1363,7 +1363,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 0308173b13..4445379951 100644
--- a/pmd_rules_jsp.html
+++ b/pmd_rules_jsp.html
@@ -1374,7 +1374,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 5ee6e94965..e7d3025aeb 100644
--- a/pmd_rules_jsp_bestpractices.html
+++ b/pmd_rules_jsp_bestpractices.html
@@ -1405,7 +1405,7 @@ little other purpose. Consider switching to JSP comments.
diff --git a/pmd_rules_jsp_codestyle.html b/pmd_rules_jsp_codestyle.html
index 2c82233183..66611f0d47 100644
--- a/pmd_rules_jsp_codestyle.html
+++ b/pmd_rules_jsp_codestyle.html
@@ -1322,7 +1322,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 226091e33d..399f1284be 100644
--- a/pmd_rules_jsp_design.html
+++ b/pmd_rules_jsp_design.html
@@ -1413,7 +1413,7 @@ response.setHeader("Pragma", "No-cache");
diff --git a/pmd_rules_jsp_errorprone.html b/pmd_rules_jsp_errorprone.html
index a7dce9d650..a4f779718f 100644
--- a/pmd_rules_jsp_errorprone.html
+++ b/pmd_rules_jsp_errorprone.html
@@ -1334,7 +1334,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 fd7d9f5e47..d73f32eda5 100644
--- a/pmd_rules_jsp_security.html
+++ b/pmd_rules_jsp_security.html
@@ -1355,7 +1355,7 @@ ${fn:escapeXml(expression)} <!-- instead, escape it -->
diff --git a/pmd_rules_plsql.html b/pmd_rules_plsql.html
index 269a0f54c6..143bf2ef1c 100644
--- a/pmd_rules_plsql.html
+++ b/pmd_rules_plsql.html
@@ -1403,7 +1403,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 be24d0070b..b1fcb7c352 100644
--- a/pmd_rules_plsql_bestpractices.html
+++ b/pmd_rules_plsql_bestpractices.html
@@ -1363,7 +1363,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 2e62504483..b15fd2ff35 100644
--- a/pmd_rules_plsql_codestyle.html
+++ b/pmd_rules_plsql_codestyle.html
@@ -1647,7 +1647,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 61713d7b29..568b4f84a4 100644
--- a/pmd_rules_plsql_design.html
+++ b/pmd_rules_plsql_design.html
@@ -2287,7 +2287,7 @@ have more fine grained objects.
diff --git a/pmd_rules_plsql_errorprone.html b/pmd_rules_plsql_errorprone.html
index f8c7311681..aa01e14f62 100644
--- a/pmd_rules_plsql_errorprone.html
+++ b/pmd_rules_plsql_errorprone.html
@@ -1432,7 +1432,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 840c5c8a0c..57416fa3d1 100644
--- a/pmd_rules_pom.html
+++ b/pmd_rules_pom.html
@@ -1336,7 +1336,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 933a27e275..44967bc816 100644
--- a/pmd_rules_pom_errorprone.html
+++ b/pmd_rules_pom_errorprone.html
@@ -1403,7 +1403,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 7c7b6717a5..f68732b1cb 100644
--- a/pmd_rules_scala.html
+++ b/pmd_rules_scala.html
@@ -1316,7 +1316,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 616fc137d4..16580709c1 100644
--- a/pmd_rules_vf.html
+++ b/pmd_rules_vf.html
@@ -1336,7 +1336,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 e3120d7624..9e5e6e3ab0 100644
--- a/pmd_rules_vf_security.html
+++ b/pmd_rules_vf_security.html
@@ -1341,7 +1341,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
diff --git a/pmd_rules_vm.html b/pmd_rules_vm.html
index 272a276e17..7bd290f69e 100644
--- a/pmd_rules_vm.html
+++ b/pmd_rules_vm.html
@@ -1357,7 +1357,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 673375f2af..aad523db4b 100644
--- a/pmd_rules_vm_bestpractices.html
+++ b/pmd_rules_vm_bestpractices.html
@@ -1331,7 +1331,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 fea9f953d3..8fef51327e 100644
--- a/pmd_rules_vm_design.html
+++ b/pmd_rules_vm_design.html
@@ -1445,7 +1445,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 d8e52492b2..44f121fea6 100644
--- a/pmd_rules_vm_errorprone.html
+++ b/pmd_rules_vm_errorprone.html
@@ -1331,7 +1331,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 5b559c6aa1..1554e5c044 100644
--- a/pmd_rules_xml.html
+++ b/pmd_rules_xml.html
@@ -1335,7 +1335,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 8b177e64d1..b850d67d2f 100644
--- a/pmd_rules_xml_errorprone.html
+++ b/pmd_rules_xml_errorprone.html
@@ -1335,7 +1335,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 2c0206874d..fa98d940d6 100644
--- a/pmd_rules_xsl.html
+++ b/pmd_rules_xsl.html
@@ -1343,7 +1343,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 545ed233bf..d3674eadf6 100644
--- a/pmd_rules_xsl_codestyle.html
+++ b/pmd_rules_xsl_codestyle.html
@@ -1326,7 +1326,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 b03f70d648..1b8a1ef326 100644
--- a/pmd_rules_xsl_performance.html
+++ b/pmd_rules_xsl_performance.html
@@ -1369,7 +1369,7 @@ cutting through 100% of the document.
diff --git a/pmd_userdocs_best_practices.html b/pmd_userdocs_best_practices.html
index f5cb52a6f7..51e7324f7d 100644
--- a/pmd_userdocs_best_practices.html
+++ b/pmd_userdocs_best_practices.html
@@ -1338,7 +1338,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 0c47dfc0d5..9ea2abc6fc 100644
--- a/pmd_userdocs_cli_reference.html
+++ b/pmd_userdocs_cli_reference.html
@@ -2035,7 +2035,7 @@ which can be specified with the
-property
diff --git a/pmd_userdocs_configuring_rules.html b/pmd_userdocs_configuring_rules.html
index 8ee6f2c4a8..ef0b4efc37 100644
--- a/pmd_userdocs_configuring_rules.html
+++ b/pmd_userdocs_configuring_rules.html
@@ -1364,7 +1364,7 @@ will cause the rule to be ignored.
diff --git a/pmd_userdocs_cpd.html b/pmd_userdocs_cpd.html
index e7988d4b9b..2496e36996 100644
--- a/pmd_userdocs_cpd.html
+++ b/pmd_userdocs_cpd.html
@@ -2317,7 +2317,7 @@ the comment based approach will be extended to those of them that can support it
diff --git a/pmd_userdocs_extending_defining_properties.html b/pmd_userdocs_extending_defining_properties.html
index 76f596e2c6..d5b67fa18c 100644
--- a/pmd_userdocs_extending_defining_properties.html
+++ b/pmd_userdocs_extending_defining_properties.html
@@ -1567,7 +1567,7 @@ There are several things to notice here:
diff --git a/pmd_userdocs_extending_designer_reference.html b/pmd_userdocs_extending_designer_reference.html
index ca4dad72d7..bbdbde32fb 100644
--- a/pmd_userdocs_extending_designer_reference.html
+++ b/pmd_userdocs_extending_designer_reference.html
@@ -1553,7 +1553,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 bf00511883..3f49fa4fd8 100644
--- a/pmd_userdocs_extending_metrics_howto.html
+++ b/pmd_userdocs_extending_metrics_howto.html
@@ -1639,7 +1639,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 cf5a2d2f98..6c121febb1 100644
--- a/pmd_userdocs_extending_rule_guidelines.html
+++ b/pmd_userdocs_extending_rule_guidelines.html
@@ -1381,7 +1381,7 @@ the category and add the XML test data in the correct xml subpackage.
diff --git a/pmd_userdocs_extending_testing.html b/pmd_userdocs_extending_testing.html
index 498bc10306..df3a434c47 100644
--- a/pmd_userdocs_extending_testing.html
+++ b/pmd_userdocs_extending_testing.html
@@ -1610,7 +1610,7 @@ will be executed twice.
diff --git a/pmd_userdocs_extending_writing_pmd_rules.html b/pmd_userdocs_extending_writing_pmd_rules.html
index b487fa7b85..1b754a9b99 100644
--- a/pmd_userdocs_extending_writing_pmd_rules.html
+++ b/pmd_userdocs_extending_writing_pmd_rules.html
@@ -1629,7 +1629,7 @@ of the component type. These can be repeated for arrays of arrays
diff --git a/pmd_userdocs_extending_writing_xpath_rules.html b/pmd_userdocs_extending_writing_xpath_rules.html
index 35b89ece72..3f6983d781 100644
--- a/pmd_userdocs_extending_writing_xpath_rules.html
+++ b/pmd_userdocs_extending_writing_xpath_rules.html
@@ -1499,7 +1499,7 @@ public class ExampleCode {
diff --git a/pmd_userdocs_incremental_analysis.html b/pmd_userdocs_incremental_analysis.html
index 8eb8004495..26eebecf04 100644
--- a/pmd_userdocs_incremental_analysis.html
+++ b/pmd_userdocs_incremental_analysis.html
@@ -1333,7 +1333,7 @@ few runs, you can use the
diff --git a/pmd_userdocs_installation.html b/pmd_userdocs_installation.html
index fd09ef4283..1a05c65ff1 100644
--- a/pmd_userdocs_installation.html
+++ b/pmd_userdocs_installation.html
@@ -1471,7 +1471,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 5e8e8db0b1..90797b9731 100644
--- a/pmd_userdocs_making_rulesets.html
+++ b/pmd_userdocs_making_rulesets.html
@@ -1411,7 +1411,7 @@ category, then PMD would fail before starting the analysis.
diff --git a/pmd_userdocs_suppressing_warnings.html b/pmd_userdocs_suppressing_warnings.html
index 99bc81d10a..a6b6a88519 100644
--- a/pmd_userdocs_suppressing_warnings.html
+++ b/pmd_userdocs_suppressing_warnings.html
@@ -1522,7 +1522,7 @@ violations you wish to suppress. XPath queries are explained in
diff --git a/pmd_userdocs_tools.html b/pmd_userdocs_tools.html
index 1ab5c33771..cd38a34bdc 100644
--- a/pmd_userdocs_tools.html
+++ b/pmd_userdocs_tools.html
@@ -1762,7 +1762,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 f9ef72d578..12cfa32e66 100644
--- a/pmd_userdocs_tools_ant.html
+++ b/pmd_userdocs_tools_ant.html
@@ -1722,7 +1722,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 5fe5f983e9..3e06b1a2d6 100644
--- a/pmd_userdocs_tools_ci.html
+++ b/pmd_userdocs_tools_ci.html
@@ -1328,7 +1328,7 @@ result of the PMD maven plugin.
diff --git a/pmd_userdocs_tools_maven.html b/pmd_userdocs_tools_maven.html
index 51bceb6dfe..b58d19db5d 100644
--- a/pmd_userdocs_tools_maven.html
+++ b/pmd_userdocs_tools_maven.html
@@ -1549,7 +1549,7 @@ the previous paragraph. Add the following property to your project now:
diff --git a/tag_devdocs.html b/tag_devdocs.html
index 59c8cfe7ea..49d490f3e2 100644
--- a/tag_devdocs.html
+++ b/tag_devdocs.html
@@ -1742,7 +1742,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
diff --git a/tag_extending.html b/tag_extending.html
index 42e610ccff..f3e9a7097f 100644
--- a/tag_extending.html
+++ b/tag_extending.html
@@ -1760,7 +1760,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 b00319a6a4..b0aa746616 100644
--- a/tag_getting_started.html
+++ b/tag_getting_started.html
@@ -1706,7 +1706,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
diff --git a/tag_languages.html b/tag_languages.html
index 850ca1d3f0..2ce35630ec 100644
--- a/tag_languages.html
+++ b/tag_languages.html
@@ -1688,7 +1688,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
diff --git a/tag_metrics.html b/tag_metrics.html
index 949db04478..1baedad230 100644
--- a/tag_metrics.html
+++ b/tag_metrics.html
@@ -1712,7 +1712,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 5f1b64ea22..90da1e77e9 100644
--- a/tag_release_notes.html
+++ b/tag_release_notes.html
@@ -1688,7 +1688,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 38d9e2430c..25a44ff824 100644
--- a/tag_rule_references.html
+++ b/tag_rule_references.html
@@ -1754,7 +1754,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
diff --git a/tag_tools.html b/tag_tools.html
index 91d478cf9e..0c153084fd 100644
--- a/tag_tools.html
+++ b/tag_tools.html
@@ -1712,7 +1712,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
diff --git a/tag_troubleshooting.html b/tag_troubleshooting.html
index 9e6edb2938..a103ce122b 100644
--- a/tag_troubleshooting.html
+++ b/tag_troubleshooting.html
@@ -1688,7 +1688,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
diff --git a/tag_userdocs.html b/tag_userdocs.html
index 0b6a496775..1e5bcfdab7 100644
--- a/tag_userdocs.html
+++ b/tag_userdocs.html
@@ -1802,7 +1802,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
diff --git a/titlepage/index.html b/titlepage/index.html
index c968e386e6..71f325333b 100644
--- a/titlepage/index.html
+++ b/titlepage/index.html
@@ -1287,7 +1287,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
- Last generated: October 27, 2019
+ Last generated: October 28, 2019
@@ -1317,7 +1317,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
diff --git a/tocpage/index.html b/tocpage/index.html
index 7aa0b0ae73..e93c1e09aa 100644
--- a/tocpage/index.html
+++ b/tocpage/index.html
@@ -1317,7 +1317,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
diff --git a/pmd_devdocs_pmdtester.html b/pmd_devdocs_pmdtester.html
index 920ad7eaf0..1998e8596e 100644
--- a/pmd_devdocs_pmdtester.html
+++ b/pmd_devdocs_pmdtester.html
@@ -1325,7 +1325,7 @@ Regression difference reports are commented back to the PR for the reviewer’s