You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ranger.apache.org by "Madhan Neethiraj (JIRA)" <ji...@apache.org> on 2015/12/15 22:56:46 UTC

[jira] [Created] (RANGER-784) Annotate REST API classes to use get/set methods instead of directly accessing fields

Madhan Neethiraj created RANGER-784:
---------------------------------------

             Summary: Annotate REST API classes to use get/set methods instead of directly accessing fields
                 Key: RANGER-784
                 URL: https://issues.apache.org/jira/browse/RANGER-784
             Project: Ranger
          Issue Type: Bug
          Components: admin
    Affects Versions: 0.6.0
            Reporter: Madhan Neethiraj
            Assignee: Madhan Neethiraj
             Fix For: 0.6.0


Classes used in REST API are currently annotated such that the JSON serialization/deserialization directly access object fields to read/write. This can cause a field to be set to null while deserializing if the incoming JSON does not include the field or if the value is explicitly set to null.

Set methods for collection-type fields in many REST API classes (like RangerPolicy/RangerService/RangerServiceDef) sets the field to an empty collection object, when null value is given. This relieves all the code that use these objects from having to check for null.

Hence it is important for the deserialization to use set method, instead of directly setting the fields. This can be done by replacing the annotation as given below:

Replace the following:
  @JsonAutoDetect(getterVisibility=Visibility.NONE, setterVisibility=Visibility.NONE, fieldVisibility=Visibility.ANY)

With:
  @JsonAutoDetect(fieldVisibility=Visibility.ANY)



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