The variable `myObject` is equal to `null`, meaning it has no value:

[source,java,diff-id=1,diff-type=noncompliant]
----
public void method() {
  Object myObject = null;
  System.out.println(myObject.toString()); // Noncompliant: myObject is null
}
----

The parameter `input` might be `null` as suggested by the `if` condition:

[source,java,diff-id=2,diff-type=noncompliant]
----
public void method(Object input)
{
  if (input == null)
  {
    // ...
  }
  System.out.println(input.toString()); // Noncompliant
}
----

The unboxing triggered in the return statement will throw a `NullPointerException`:

[source,java,diff-id=3,diff-type=noncompliant]
----
public boolean method() {
  Boolean boxed = null;
  return boxed; // Noncompliant
}
----

Both `conn` and `stmt` might be `null` in case an exception was thrown in the try{} block:

[source,java,diff-id=4,diff-type=noncompliant]
----
Connection conn = null;
Statement stmt = null;
try {
  conn = DriverManager.getConnection(DB_URL,USER,PASS);
  stmt = conn.createStatement();
  // ...
} catch(Exception e) {
  e.printStackTrace();
} finally {
  stmt.close();  // Noncompliant
  conn.close();  // Noncompliant
}
----

As `getName()` is annotated with `@CheckForNull`, there is a risk of `NullPointerException` here:

[source,java,diff-id=5,diff-type=noncompliant]
----
@CheckForNull
String getName() {...}

public boolean isNameEmpty() {
  return getName().length() == 0; // Noncompliant
}
----

As `merge(...)` parameter is annotated with `@Nonnull`, passing an identified potential null value (thanks to @CheckForNull) is not safe:

[source,java,diff-id=6,diff-type=noncompliant]
----
private void merge(@Nonnull Color firstColor, @Nonnull Color secondColor) {...}

public void append(@CheckForNull Color color) {
  merge(currentColor, color);  // Noncompliant: color should be null-checked because merge(...) doesn't accept nullable parameters
}
----
