[
https://issues.apache.org/jira/browse/SLING-4377?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Konrad Windszus updated SLING-4377:
-----------------------------------
Description:
Since consumers of the Sling API always have to keep in mind whether a
null-check is necessary it would be good to add JSR 305 annotations to the API.
See also http://www.mail-archive.com/[email protected]/msg42199.html.
At least Eclipse as well as Findbugs are supporting those and Oak Solr is using
those already (https://issues.apache.org/jira/browse/OAK-2303).
Only the following 2 annotations should be used:
# {{@Nonnull}}, for return values which are not supposed to be {{null}} or
parameters which must not be {{null}}.
# {{@CheckForNull}}, for return values wich may be null {{null}}.
Those are the only ones being supported by both Eclipse and Findbugs (compare
with http://sourceforge.net/p/findbugs/bugs/1355/)
{{@Nullable}} is basically ignored by Findbugs
(http://findbugs.sourceforge.net/manual/annotations.html) and should therefore
not be used. The package annotation for the default handling should also not be
used (because either {{@Nullable}} or {{@CheckForNull}} is ignored by Eclipse
then.
was:
Since consumers of the Sling API always have to keep in mind whether a
null-check is necessary it would be good to add JSR 305 annotations to the API.
See also http://www.mail-archive.com/[email protected]/msg42199.html.
At least Eclipse as well as Findbugs are supporting those and Oak Solr is using
those already (https://issues.apache.org/jira/browse/OAK-2303).
Only the following 3 annotations should be used:
# {{@Nonnull}}, for return values which are not supposed to be {{null}}, the
parameters are usually covered by the {{@ParametersAreNonNullByDefault}}
annotation.
# {{@CheckForNull}}, for return values wich may be null {{null}}}
# {{@Nullable}}, for parameter which may be {{null}}, overwriting the
{{@ParametersAreNonNullByDefault}} annotation on package/class level
# {{@ParametersAreNonNullByDefault}}, should only be used o package or class
level.
Those are the only ones being supported by both Eclipse and Findbugs.
Nullable is basically ignored by Findbugs
(http://findbugs.sourceforge.net/manual/annotations.html) and should therefore
not be used. Eclipse can be configured so it can deal with CheckForNull as
well. Also Solr is only using {{@Nonnull}} and {{@CheckForNull}}.
> Add JSR305 annotations to Sling API
> -----------------------------------
>
> Key: SLING-4377
> URL: https://issues.apache.org/jira/browse/SLING-4377
> Project: Sling
> Issue Type: Improvement
> Components: API
> Reporter: Konrad Windszus
> Assignee: Konrad Windszus
>
> Since consumers of the Sling API always have to keep in mind whether a
> null-check is necessary it would be good to add JSR 305 annotations to the
> API.
> See also http://www.mail-archive.com/[email protected]/msg42199.html.
> At least Eclipse as well as Findbugs are supporting those and Oak Solr is
> using those already (https://issues.apache.org/jira/browse/OAK-2303).
> Only the following 2 annotations should be used:
> # {{@Nonnull}}, for return values which are not supposed to be {{null}} or
> parameters which must not be {{null}}.
> # {{@CheckForNull}}, for return values wich may be null {{null}}.
> Those are the only ones being supported by both Eclipse and Findbugs (compare
> with http://sourceforge.net/p/findbugs/bugs/1355/)
> {{@Nullable}} is basically ignored by Findbugs
> (http://findbugs.sourceforge.net/manual/annotations.html) and should
> therefore not be used. The package annotation for the default handling should
> also not be used (because either {{@Nullable}} or {{@CheckForNull}} is
> ignored by Eclipse then.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)