Johan Stuyts created WICKET-7145:
------------------------------------

             Summary: Developer experience improvement: nullability
                 Key: WICKET-7145
                 URL: https://issues.apache.org/jira/browse/WICKET-7145
             Project: Wicket
          Issue Type: Improvement
          Components: wicket
    Affects Versions: 10.4.0
            Reporter: Johan Stuyts


Knowing whether a variable can be {{null}} or not, improves the developer 
experience. A first step is to add {{@Nonnull}} to parameters that are checked 
for {{{}null{}}}.

The patch adds {{@Nonull }}to those parameters. The following has been done:
 * The annotation has been added to base and sub types, and to some overloads.
 * Conditional nullability has been taken into account.
 ** In some methods in {{Files}} the client may pass values for other 
parameters that allows the non-{{{}null{}}} parameter to be {{{}null{}}}. It is 
assumed that clients do not do this. If a client checks if the non-{{{}null{}}} 
parameter may be {{{}null{}}}, the client can better skip the call.

In some hierarchies the handling of {{null}} is inconsistent. The contract of 
the base method has to be tightened, or the implementations need to be  changed 
to support {{{}null{}}}:
 * {{{}org.apache.wicket.request.Response.encodeURL{}}}: the annotations has 
only be added to the implementations in {{ServletWebResponse}} and 
{{{}WebSocketResponse{}}}.
 * {{{}org.apache.wicket.request.http.WebResponse.encodeRedirectURL{}}}: the 
same holds true as above.
 * 
{{{}org.apache.wicket.request.mapper.parameter.IPageParametersEncoder.encodePageParameters{}}}:
 the annotation has only be added to the implementation in 
{{{}UrlPathPageParametersEncoder{}}}.

In addition bugs were found and fixed:
 * The order of the parameters to {{Checks.notNull(...)}} in 
{{{}OriginResourceIsolationPolicy{}}}.
 * The order of parameters to {{assertNull(...)}} in {{BaseWicketTester}} and 
{{{}WicketTesterTest{}}}.

The patch is quite big, but the changes are small and simple. The changes can 
be viewed here: 
https://github.com/apache/wicket/compare/master...jstuyts:wicket:add-non-null-to-parameters



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to