
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
47 lines
1010 B
Plaintext
47 lines
1010 B
Plaintext
== Why is this an issue?
|
|
|
|
Calling ``++toString()++`` or ``++clone()++`` on an object should always return a string or an object. Returning ``++null++`` instead contravenes the method's implicit contract.
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,java]
|
|
----
|
|
public String toString () {
|
|
if (this.collection.isEmpty()) {
|
|
return null; // Noncompliant
|
|
} else {
|
|
// ...
|
|
----
|
|
|
|
=== Compliant solution
|
|
|
|
[source,java]
|
|
----
|
|
public String toString () {
|
|
if (this.collection.isEmpty()) {
|
|
return "";
|
|
} else {
|
|
// ...
|
|
----
|
|
|
|
== Resources
|
|
|
|
* https://cwe.mitre.org/data/definitions/476[MITRE, CWE-476] - NULL Pointer Dereference
|
|
* https://wiki.sei.cmu.edu/confluence/x/aDdGBQ[CERT, EXP01-J.] - Do not use a null in a case where an object is required
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::../message.adoc[]
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::../comments-and-links.adoc[]
|
|
endif::env-github,rspecator-view[]
|