diff --git a/pmd-java/src/main/resources/rulesets/java/clone.xml b/pmd-java/src/main/resources/rulesets/java/clone.xml
index 766f713df3..959e785a63 100644
--- a/pmd-java/src/main/resources/rulesets/java/clone.xml
+++ b/pmd-java/src/main/resources/rulesets/java/clone.xml
@@ -172,4 +172,49 @@ public class Foo implements Cloneable {
]]>
+
+
+
+The java Manual says "By convention, classes that implement this interface should override
+Object.clone (which is protected) with a public method."
+
+ 3
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/rule/clone/CloneRulesTest.java b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/rule/clone/CloneRulesTest.java
index a45ba1e2ab..c8ee65451a 100644
--- a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/rule/clone/CloneRulesTest.java
+++ b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/rule/clone/CloneRulesTest.java
@@ -15,5 +15,6 @@ public class CloneRulesTest extends SimpleAggregatorTst {
addRule(RULESET, "CloneThrowsCloneNotSupportedException");
addRule(RULESET, "ProperCloneImplementation");
addRule(RULESET, "CloneMethodReturnTypeMustMatchClassName");
+ addRule(RULESET, "CloneMethodMustBePublic");
}
}
diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/clone/xml/CloneMethodMustBePublic.xml b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/clone/xml/CloneMethodMustBePublic.xml
new file mode 100644
index 0000000000..b12b2b2482
--- /dev/null
+++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/clone/xml/CloneMethodMustBePublic.xml
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
\ No newline at end of file