Skip to content

DateFieldMapper ignore_malformed misses java.lang.ArithmeticException #52634

@iverase

Description

@iverase

It seems when parsing dates as longs, we can have arithmetic exceptions. Steps to reproduce:

PUT test01
{
  "mappings": {
    "properties": {
      "dadate": {
        "type": "date",
        "ignore_malformed": true
      }
    }
  }
}
     
PUT test01/_doc/1
{
  "dadate": "-522000000"
}

The error in the logs looks like:

Caused by: java.lang.ArithmeticException: long overflow
	at java.lang.Math.multiplyExact(Math.java:946) ~[?:?]
	at java.lang.Math.multiplyExact(Math.java:922) ~[?:?]
	at java.time.Instant.toEpochMilli(Instant.java:1236) ~[?:?]
	at org.elasticsearch.index.mapper.DateFieldMapper$Resolution$1.convert(DateFieldMapper.java:83) ~[elasticsearch-7.6.0.jar:7.6.0]
	at org.elasticsearch.index.mapper.DateFieldMapper$DateFieldType.parse(DateFieldMapper.java:338) ~[elasticsearch-7.6.0.jar:7.6.0]
	at org.elasticsearch.index.mapper.DateFieldMapper.parseCreateField(DateFieldMapper.java:545) ~[elasticsearch-7.6.0.jar:7.6.0]

Similar to #50090

Metadata

Metadata

Assignees

No one assigned

    Labels

    :Search Foundations/MappingIndex mappings, including merging and defining field types>bugTeam:Search FoundationsMeta label for the Search Foundations team in Elasticsearch

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions