private static String getDataTypeClassName(String variableName, final ProcessInstanceUUID instanceUUID, final ActivityInstanceUUID activityUUID) { if (isXPathVariableReference(variableName)) { return String.class.getName(); } variableName = Misc.getVariableName(variableName); final StandardQueryAPIAccessorImpl accessor = new StandardQueryAPIAccessorImpl(); final QueryDefinitionAPI queryDefinitionAPI = accessor.getQueryDefinitionAPI(AccessorUtil.QUERYLIST_JOURNAL_KEY); if (activityUUID != null) { try { final ActivityInstance activity = EnvTool.getJournalQueriers().getActivityInstance(activityUUID); return getActivityDataTypeClassName(queryDefinitionAPI, activity.getActivityDefinitionUUID(), variableName); } catch (final Exception e) { final ProcessInstance instance = EnvTool.getJournalQueriers().getProcessInstance(instanceUUID); return getProcessDataTypeClassName(queryDefinitionAPI, instance.getProcessDefinitionUUID(), variableName); } } else { final ProcessInstance instance = EnvTool.getJournalQueriers().getProcessInstance(instanceUUID); return getProcessDataTypeClassName(queryDefinitionAPI, instance.getProcessDefinitionUUID(), variableName); } }