Я новичок в Java и пытаюсь отладить предварительно разработанный код, который требует проверки MVEL для данного выражения, и я получаю сообщение об ошибке ниже отладчика: org.mvel2.PropertyAccessException
Ниже выдается код ошибки executeExpression
метод:
public boolean compileAndExecuteMvelExpression(String expression){
boolean result =false;
Serializable compiledExpression =MVEL.compileExpression(expression);
result=MVEL.executeExpression(compiledExpression,variableMap,Boolean.class);
return result;
}
"expression" = (null !=TaskJsonUtils.fetchTVRTaskStatus(taskJson && (null == TaskJsonUtils.fetchDistinctFieldValueFromJson(taskJson,"Risk_Status") || (TaskJsonUtils.fetchDistinctFieldValueFromJson(taskJson,"Risk_Status").trim().length()==0)) && TaskJsonUtils.fetchTVRTaskStatus(taskJson).contains("RETRIGGER")*
Пройдя глубже, ниже приведен код, в котором отладчик выдает ошибку при getValue
методе:
@SuppressWarnings({"unchecked"})
public static Object executeExpression(final Object compiledExpression, final Map vars) {
CachingMapVariableResolverFactory factory = new CachingMapVariableResolverFactory(vars);
try {
return ((ExecutableStatement) compiledExpression).getValue(null, factory);
}
finally {
factory.externalize();
}
}
Переданы следующие аргументы:
"compiledExpression" = ((Literal<null> != null) && (((Literal<null> == null) || (null == Literal<0>)) && null))
"vars" = {
taskJson=[
{
"fieldId": 12345,
"fieldName": "ABCD",
"fieldActualData": "2019/01/15 09:05",
"fieldType": "DATE",
"section": {
"sectionId": 100,
"sectionName": "SOURCING_DETAIL",
"sectionStale": false,
"queueTaskCategory": {
"categoryId": 0,
"categoryName": "ABC",
"categoryStale": false,
"categoryEditable": false
}
},
"fieldStale": false,
"lastUpdatedTime": 0,
"displayName": "Application Date Time",
"displayHistoryData": "false"
}
]
, TaskJsonUtils=com.fullerton.spring.comm.actions.TaskJsonUtils@7fd99443
}
Пожалуйста, попробуйте объяснить как можно проще.
Спасибо.