You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Bojan Antonović (JIRA)" <ji...@apache.org> on 2016/07/25 13:51:20 UTC

[jira] [Created] (LOG4J2-1477) @NonNull support (for @NonNullByDefault or similar)

Bojan Antonović created LOG4J2-1477:
---------------------------------------

             Summary: @NonNull support (for @NonNullByDefault or similar)
                 Key: LOG4J2-1477
                 URL: https://issues.apache.org/jira/browse/LOG4J2-1477
             Project: Log4j 2
          Issue Type: Wish
          Components: API
    Affects Versions: 2.6.2
         Environment: any
            Reporter: Bojan Antonović
            Priority: Trivial
             Fix For: 2.7


Eclipse (and other tools) offer non-null checks by annotation processing.

One of the possibilities to enable this is to add the annotation @org.eclipse.jdt.annotation.NonNullByDefault in your package-info.java file.

Example:

@org.eclipse.jdt.annotation.NonNullByDefault
package foo;

A frequent problem is reported when using a logger:

private static final Logger LOGGER = LogManager.getLogger(Bla.class);

for which Eclipse says:
Null type safety (type annotations): The expression of type 'Logger' needs unchecked conversion to conform to '@NonNull Logger' Bla.java	(...)

This can by bypassed by putting a @SuppressWarnings("null") over the expression, but this has to be done in every class, and may be the *only* line of code with this workaround.

There are other annotations for non-null (javax.annotation.Nonnull) and many other frameworks, like the Checker Framework.

I don't want to be a judge which one to choose.

Deeper support may require a dependency on Java 8.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org