diff options
Diffstat (limited to 'modules/lang-expression/src/main/java/org/elasticsearch/script/expression/DateMethodValueSource.java')
-rw-r--r-- | modules/lang-expression/src/main/java/org/elasticsearch/script/expression/DateMethodValueSource.java | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/modules/lang-expression/src/main/java/org/elasticsearch/script/expression/DateMethodValueSource.java b/modules/lang-expression/src/main/java/org/elasticsearch/script/expression/DateMethodValueSource.java index 98909f4401..b0bc7c203b 100644 --- a/modules/lang-expression/src/main/java/org/elasticsearch/script/expression/DateMethodValueSource.java +++ b/modules/lang-expression/src/main/java/org/elasticsearch/script/expression/DateMethodValueSource.java @@ -56,12 +56,16 @@ class DateMethodValueSource extends FieldDataValueSource { final Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"), Locale.ROOT); NumericDoubleValues docValues = multiValueMode.select(leafData.getDoubleValues(), 0d); return new DoubleDocValues(this) { - @Override - public double doubleVal(int docId) { - long millis = (long)docValues.get(docId); - calendar.setTimeInMillis(millis); - return calendar.get(calendarType); - } + @Override + public double doubleVal(int docId) throws IOException { + if (docValues.advanceExact(docId)) { + long millis = (long)docValues.doubleValue(); + calendar.setTimeInMillis(millis); + return calendar.get(calendarType); + } else { + return 0; + } + } }; } |