You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Sushanth Sowmyan (JIRA)" <ji...@apache.org> on 2015/03/09 21:53:39 UTC
[jira] [Updated] (HIVE-9550) ObjectStore.getNextNotification() can
return events inside NotificationEventResponse as null which conflicts with
its thrift "required" tag
[ https://issues.apache.org/jira/browse/HIVE-9550?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sushanth Sowmyan updated HIVE-9550:
-----------------------------------
Issue Type: Sub-task (was: Bug)
Parent: HIVE-7973
> ObjectStore.getNextNotification() can return events inside NotificationEventResponse as null which conflicts with its thrift "required" tag
> -------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: HIVE-9550
> URL: https://issues.apache.org/jira/browse/HIVE-9550
> Project: Hive
> Issue Type: Sub-task
> Reporter: Sushanth Sowmyan
> Assignee: Sushanth Sowmyan
> Fix For: 1.2.0
>
> Attachments: HIVE-9550.patch
>
>
> Per hive_metastore.thrift, the "events" list inside NotificationEventResponse is a required field that cannot be null.
> {code}
> struct NotificationEventResponse {
> 1: required list<NotificationEvent> events,
> }
> {code}
> However, per ObjectStore.java, this events field can be uninitialized if the events retrieved from the metastore is empty instead of null:
> {code}
> NotificationEventResponse result = new NotificationEventResponse();
> int maxEvents = rqst.getMaxEvents() > 0 ? rqst.getMaxEvents() : Integer.MAX_VALUE;
> int numEvents = 0;
> while (i.hasNext() && numEvents++ < maxEvents) {
> result.addToEvents(translateDbToThrift(i.next()));
> }
> return result;
> {code}
> The fix is simple enough - we need to call result.setEvents(new ArrayList<NotificationEvent>()) before we begin the iteration to do result.addToEvents(...).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)