Recommendations

MET00-J. Understand the difference between overriding and hiding

MET01-J. Follow good design principles while defining methods

MET02-J. Avoid ambiguous uses of overloading

MET03-J. For methods that return an array or collection prefer returning an empty array or collection over a null value

MET04-J. Always provide feedback about the resulting value of a method

Rules

MET30-J. Follow the general contract while overriding the equals method

MET31-J. Ensure that hashCode() is overridden when equals() is overridden

MET32-J. Ensure that constructors do not call overridable methods

MET33-J. Do not subject overloaded methods to polymorphic invocations

MET34-J. Follow the general contract when implementing the compareTo method

MET35-J. Ensure that the clone method calls super.clone

Risk Assessment Summary

Recommendations

Recommendation

Severity

Likelihood

Remediation Cost

Priority

Level

MET00-J

low

unlikely

high

P1

L3

MET01-J

low

unlikely

high

P1

L3

MET02-J

low

unlikely

high

P1

L3

MET03-J

low

unlikely

high

P1

L3

MET04-J

medium

unlikely

medium

P4

L3

Rules

Rules

Severity

Likelihood

Remediation Cost

Priority

Level

MET30-J

low

unlikely

medium

P2

L3

MET31-J

low

unlikely

high

P1

L3

MET32-J

medium

probable

medium

P8

L2

MET34-J

medium

unlikely

medium

P4

L3


CON34-J. Avoid deadlock by requesting fine-grained locks in the proper order      The CERT Sun Microsystems Secure Coding Standard for Java      MET00-J. Understand the difference between overriding and hiding