[
https://issues.apache.org/jira/browse/LOG4J2-1477?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17788345#comment-17788345
]
Greg Thomas commented on LOG4J2-1477:
-------------------------------------
> I can make some aliases in the API to make this simpler to update later on if
> needed.
So yet another Nullable annotation to add to the list at
[https://stackoverflow.com/questions/4963300/which-notnull-java-annotation-should-i-use]
? The Log4J one?
It seems to be that perhaps (perhaps) [https://jspecify.dev/] is the way to go.
Certainly something I'm keeping an eye on, and seems to have backing from some
big players - https://jspecify.dev/about
Though of course [https://xkcd.com/927/] applies I guess.
> @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ć
> Assignee: Matt Sicker
> Priority: Major
> Fix For: 3.0.0
>
>
> 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.
> Problems:
> - 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.
> - If you want to do it framework wide, this can be a huge task.
> - As some tools are not mature (IMHO), it will need experiments.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)