diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java index c7dbd9f..c9b66fd 100644 --- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java +++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java @@ -9194,18 +9194,18 @@ public NotificationEventResponse getNextNotification(NotificationEventRequest rq try { openTransaction(); long lastEvent = rqst.getLastEvent(); + int maxEvents = rqst.getMaxEvents() > 0 ? rqst.getMaxEvents() : Integer.MAX_VALUE; query = pm.newQuery(MNotificationLog.class, "eventId > lastEvent"); query.declareParameters("java.lang.Long lastEvent"); query.setOrdering("eventId ascending"); + query.setRange(0, maxEvents); Collection events = (Collection) query.execute(lastEvent); commited = commitTransaction(); if (events == null) { return result; } Iterator i = events.iterator(); - int maxEvents = rqst.getMaxEvents() > 0 ? rqst.getMaxEvents() : Integer.MAX_VALUE; - int numEvents = 0; - while (i.hasNext() && numEvents++ < maxEvents) { + while (i.hasNext()) { result.addToEvents(translateDbToThrift(i.next())); } return result;