Java показывает org.mvel2.PropertyAccessException - PullRequest
0 голосов
/ 25 апреля 2019

Я новичок в 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
}

Пожалуйста, попробуйте объяснить как можно проще.

Спасибо.

...