[
https://issues.apache.org/jira/browse/RANGER-784?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Madhan Neethiraj updated RANGER-784:
------------------------------------
Attachment: 0001-RANGER-784-Annotate-REST-API-classes-to-use-get-set-.patch
> 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
>
> Attachments:
> 0001-RANGER-784-Annotate-REST-API-classes-to-use-get-set-.patch
>
>
> 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)