Im using jexl 2.1.1 executing a script. When I do this I get null (which seems wrong)
ProvisioningEntity provisioningEntity = new ProvisioningEntity(); provisioningEntity.setSubjectIdentifier0("hello"); Map<String, Object> elVariableMap = new HashMap<String, Object>(); elVariableMap.put("provisioningEntity", provisioningEntity); String el = "${provisioningEntity ? provisioningEntity.subjectIdentifier0 : null}"; boolean silent = false; boolean lenient = false; boolean allowStaticClasses = true; Object result = substituteExpressionLanguageScript(el,elVariableMap, allowStaticClasses, silent, lenient); System.out.println(result); When I do this I get "hello". Why? since provisioningEntity is not null they should have the same result ("hello") right? ProvisioningEntity provisioningEntity = new ProvisioningEntity(); provisioningEntity.setSubjectIdentifier0("hello"); Map<String, Object> elVariableMap = new HashMap<String, Object>(); elVariableMap.put("provisioningEntity", provisioningEntity); String el = "${provisioningEntity.subjectIdentifier0 ? provisioningEntity.subjectIdentifier0 : null}"; boolean silent = false; boolean lenient = false; boolean allowStaticClasses = true; Object result = substituteExpressionLanguageScript(el,elVariableMap, allowStaticClasses, silent, lenient); System.out.println(result);