I created https://issues.apache.org/jira/browse/SLING-4377 
<https://issues.apache.org/jira/browse/SLING-4377> to track that.
But I just faced another problem:
I can make Eclipse only understand one type of nullable annotation: So either 
@Nullable or @CheckForNull.
The problem now is, that I would need to rely on both for Findbugs if I also 
want to leverage the @ParametersAreNonNullByDefault. I opened the bug 
https://sourceforge.net/p/findbugs/bugs/1355/ 
<https://sourceforge.net/p/findbugs/bugs/1355/> about this different behaviour 
between Eclipse and Windbags

In Oak Solr this was solved by not using the class/package annotation 
@ParametersAreNonNullByDefault. But that way writing the annotations is quite 
verbose, because in most of the cases, parameters are not supposed to be null!
I would need to annotate all of those with @NonNull (because @Nullable is the 
default then!)

Do you have any other idea how to deal with that except for limiting oneself to 
only @CheckForNull and @NonNull?

Thanks a lot for any input on that
Konrad


> On 02 Feb 2015, at 09:10, Konrad Windszus <konra...@gmx.de> wrote:
> 
> Indeed Eclipse supports configurable annotations. You can find the 
> information at 
> http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fpreferences%2Fjava%2Fcompiler%2Fref-preferences-errors-warnings.htm&anchor=null_annotation_names
>  
> <http://help.eclipse.org/juno/index.jsp?topic=/org.eclipse.jdt.doc.user/reference/preferences/java/compiler/ref-preferences-errors-warnings.htm&anchor=null_annotation_names>.
>  Therefore it will probably make sense to use the JSR305 annotations.
> I will create a feature branch where I will add those annotations for Sling 
> API as well as Sling Models and Sling Validation.
> Thanks for your input.
> 
>> On 30 Jan 2015, at 13:59, Robert Munteanu <rob...@lmn.ro 
>> <mailto:rob...@lmn.ro>> wrote:
>> 
>> On Fri, Jan 30, 2015 at 2:55 PM, Konrad Windszus <konra...@gmx.de 
>> <mailto:konra...@gmx.de>> wrote:
>>> The question for me is whether we should rely on the dormant standard 
>>> (which did never release anything officially) 305, because that is not 
>>> supported by Eclipse or whether we should use something else?
>>> Any ideas, opinions on that?
>>> What is your experience with the JSR305 javax.annotation support in major 
>>> IDEs (see also 
>>> http://stackoverflow.com/questions/4963300/which-notnull-java-annotation-should-i-use
>>>  
>>> <http://stackoverflow.com/questions/4963300/which-notnull-java-annotation-should-i-use>
>>>  
>>> <http://stackoverflow.com/questions/4963300/which-notnull-java-annotation-should-i-use
>>>  
>>> <http://stackoverflow.com/questions/4963300/which-notnull-java-annotation-should-i-use>>)?
>> 
>> AFAIR for Eclipse you can configure the annotation types to use ( see
>> [1] ) . But of course we'd need to validate this before starting
>> conversions.
>> 
>> Robert
>> 
>> 
>> [1]: 
>> http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-using_null_annotations.htm
>>  
>> <http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-using_null_annotations.htm>
>> 
>>> Konrad
>>> 
>>>> On 30 Jan 2015, at 13:37, Robert Munteanu <romb...@apache.org 
>>>> <mailto:romb...@apache.org>> wrote:
>>>> 
>>>> On Fri, Jan 30, 2015 at 2:15 PM, Konrad Windszus <konra...@gmx.de 
>>>> <mailto:konra...@gmx.de>> wrote:
>>>>> What about adding annotations like 
>>>>> https://code.google.com/p/jsr-305/source/browse/trunk/ri/src/main/java/javax/annotation/CheckForNull.java
>>>>>  
>>>>> <https://code.google.com/p/jsr-305/source/browse/trunk/ri/src/main/java/javax/annotation/CheckForNull.java>
>>>>>  
>>>>> <https://code.google.com/p/jsr-305/source/browse/trunk/ri/src/main/java/javax/annotation/CheckForNull.java
>>>>>  
>>>>> <https://code.google.com/p/jsr-305/source/browse/trunk/ri/src/main/java/javax/annotation/CheckForNull.java>>
>>>>>  to the Sling API?
>>>> 
>>>> +1
>>>> 
>>>> I wonder if there is a static analyser which can fail the build when
>>>> violations are found, e.g. immediately dereferencing the result of a
>>>> method which is @Nullable.
>>>> 
>>>> Robert
>>> 
>> 
>> 
>> 
>> -- 
>> Sent from my (old) computer
> 

Reply via email to