Having trouble spotting the error in my script.
"reason": "class_cast_exception: Cannot cast from [boolean] to [java.lang.String]."
The Scripted field:
Instant Currentdate = Instant.ofEpochMilli(new Date().getTime());
long Fakedate = 956851031000L;
Instant Duedate = doc['duedate'].empty ? Instant.ofEpochMilli(Fakedate) : Instant.ofEpochMilli(doc['duedate'].value.getMillis());
Instant removed_date = doc['removed_date'].empty ? Instant.ofEpochMilli(Fakedate) : Instant.ofEpochMilli(doc['removed_date'].value.getMillis());
if (doc['duedate'].value == null || !doc.containsKey('duedate') || doc['duedate'].empty) {
return false;
} else if (Currentdate.isAfter(Duedate) && doc['Status'].value.contains('Open')){
return true;
} else if (removed_date.isAfter(Duedate) && doc['Status'].value.contains('Closed')){
return true;
} else {
return false;
}
Here is the response:
{
"took": 108,
"timed_out": false,
"terminated_early": false,
"num_reduce_phases": 0,
"_shards": {
"total": 6,
"successful": 0,
"skipped": 0,
"failed": 4,
"failures": [
{
"shard": 0,
"index": "",
"node": "",
"reason": {
"type": "script_exception",
"reason": "compile error",
"script_stack": [
"... '].empty) { \r\n return false;\r\n \r\n} else if ( ...",
" ^---- HERE"
],
"script": "Instant Currentdate = Instant.ofEpochMilli(new Date().getTime());\r\nlong Fakedate = 956851031000L;\r\nInstant Duedate = doc['duedate'].empty ? Instant.ofEpochMilli(Fakedate) : Instant.ofEpochMilli(doc['duedate'].value.getMillis());\r\nInstant removed_date = doc['removed_date'].empty ? Instant.ofEpochMilli(Fakedate) : Instant.ofEpochMilli(doc['removed_date'].value.getMillis());\r\n\r\nif (!doc.containsKey('duedate') || doc['duedate'].empty) { \r\n return false;\r\n \r\n} else if (Currentdate.isAfter(Duedate) && doc['Status'].value.contains('Open')){\r\n return true;\r\n \r\n} else if (removed_date.isAfter(Duedate) && doc['Status'].value.contains('Closed')){\r\n return true;\r\n \r\n} else {\r\n return false;\r\n \r\n}",
"lang": "painless",
"position": {
"offset": 450,
"start": 425,
"end": 475
},
"caused_by": {
"type": "class_cast_exception",
"reason": "class_cast_exception: Cannot cast from [boolean] to [java.lang.String]."
}
}
},
{
"shard": 0,
"index": "",
"node": "",
"reason": {
"type": "script_exception",
"reason": "compile error",
"script_stack": [
"... '].empty) { \r\n return false;\r\n \r\n} else if ( ...",
" ^---- HERE"
],
"script": "Instant Currentdate = Instant.ofEpochMilli(new Date().getTime());\r\nlong Fakedate = 956851031000L;\r\nInstant Duedate = doc['duedate'].empty ? Instant.ofEpochMilli(Fakedate) : Instant.ofEpochMilli(doc['duedate'].value.getMillis());\r\nInstant removed_date = doc['removed_date'].empty ? Instant.ofEpochMilli(Fakedate) : Instant.ofEpochMilli(doc['removed_date'].value.getMillis());\r\n\r\nif (!doc.containsKey('duedate') || doc['duedate'].empty) { \r\n return false;\r\n \r\n} else if (Currentdate.isAfter(Duedate) && doc['Status'].value.contains('Open')){\r\n return true;\r\n \r\n} else if (removed_date.isAfter(Duedate) && doc['Status'].value.contains('Closed')){\r\n return true;\r\n \r\n} else {\r\n return false;\r\n \r\n}",
"lang": "painless",
"position": {
"offset": 450,
"start": 425,
"end": 475
},
"caused_by": {
"type": "class_cast_exception",
"reason": "class_cast_exception: Cannot cast from [boolean] to [java.lang.String]."
}
}
}
]
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}