diff --git a/pmd-java/src/main/resources/rulesets/java/design.xml b/pmd-java/src/main/resources/rulesets/java/design.xml
index ede4e810a9..dc8044c8ed 100644
--- a/pmd-java/src/main/resources/rulesets/java/design.xml
+++ b/pmd-java/src/main/resources/rulesets/java/design.xml
@@ -1845,6 +1845,15 @@ having to deal with the creation of an array.
[not (./Type/ReferenceType[@Array='true'][PrimitiveType[@Image='byte']])]
[not (./Type/ReferenceType[ClassOrInterfaceType[@Image='Byte']])]
[not (./Type/PrimitiveType[@Image='byte'])]
+ [not (ancestor::MethodDeclaration/preceding-sibling::Annotation/*/Name[@Image='Override'])]
+ [not(
+ ancestor::MethodDeclaration
+ [@Public='true' and @Static='true']
+ [child::ResultType[@Void='true']] and
+ ancestor::MethodDeclarator[@Image='main'] and
+ ..[@ParameterCount='1'] and
+ ./Type/ReferenceType[ClassOrInterfaceType[@Image='String']]
+ )]
]]>
diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/UseVarargs.xml b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/UseVarargs.xml
index 169b9cdd37..4e0ee4fd69 100644
--- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/UseVarargs.xml
+++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/UseVarargs.xml
@@ -82,6 +82,40 @@ method, do not varargs, allow Byte[] as not varargs
public class Foo {
public void bar(File file, Byte[] data) { }
public void bar2(File file, Byte data[]) { }
+}
+ ]]>
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+
+ 1
+
diff --git a/src/site/markdown/overview/changelog.md b/src/site/markdown/overview/changelog.md
index d6b91edaf5..1e45cae0ee 100644
--- a/src/site/markdown/overview/changelog.md
+++ b/src/site/markdown/overview/changelog.md
@@ -15,6 +15,8 @@
Check for invalid message format in slf4j loggers.
* java-comments/CommentRequired: New property `serialVersionUIDCommentRequired` which controls the comment requirements
for *serialVersionUID* fields. By default, no comment is required for this field.
+* java-design/UseVargs: public static void main method is ignored now and so are methods, that are annotated
+ with Override. See [PR#79](https://github.com/pmd/pmd/pull/79).
**Pull Requests:**
@@ -26,6 +28,7 @@
* [#76](https://github.com/pmd/pmd/pull/76): fix formatting typos in an example of the DoNotCallGarbageCollectionExplicitly rule
* [#77](https://github.com/pmd/pmd/pull/77): Fix various typos
* [#78](https://github.com/pmd/pmd/pull/78): Add Builder pattern check to the MissingStaticMethodInNonInstantiatableClass rule
+* [#79](https://github.com/pmd/pmd/pull/79): do not flag public static void main(String[]) as UseVarargs; ignore @Override for UseVarargs
**Bugfixes:**