You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Sushanth Sowmyan (JIRA)" <ji...@apache.org> on 2015/02/02 21:58:35 UTC

[jira] [Created] (HIVE-9550) ObjectStore.getNextNotification() can return events inside NotificationEventResponse as null which conflicts with its thrift "required" tag

Sushanth Sowmyan created HIVE-9550:
--------------------------------------

             Summary: 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: Bug
            Reporter: Sushanth Sowmyan


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)