summaryrefslogtreecommitdiff
path: root/modules/lang-expression/src/main/java/org/elasticsearch/script/expression/DateMethodValueSource.java
diff options
context:
space:
mode:
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.java16
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;
+ }
+ }
};
}