in jbpm/process-workitems/src/main/java/org/jbpm/process/workitem/builtin/LoggingTaskHandlerDecorator.java [210:286]
private void logMessage(boolean onExecute, KogitoWorkItem workItem, Throwable cause) {
String handlerMethodStem = "execut";
if (!onExecute) {
handlerMethodStem = "abort";
}
if (cause instanceof WorkItemHandlerRuntimeException) {
cause = cause.getCause();
}
List<String> inputList = new ArrayList<>();
if (configuredInputList.isEmpty()) {
if (workItem.getParameter("Interface") != null) {
configuredMessage = "{0}.{1} threw {2} when {3}ing work item {4} in process instance {5}.";
inputList.add((String) workItem.getParameter("Interface"));
inputList.add((String) workItem.getParameter("Operation"));
inputList.add(cause.getClass().getSimpleName());
inputList.add(handlerMethodStem);
inputList.add(workItem.getStringId());
inputList.add(workItem.getProcessInstanceStringId());
} else {
// {0} thrown when work item {1} ({2}) was {3}ed in process instance {4}.
inputList.add(cause.getClass().getSimpleName());
inputList.add(workItem.getStringId());
inputList.add(workItem.getName());
inputList.add(handlerMethodStem);
inputList.add(String.valueOf(workItem.getProcessInstanceStringId()));
}
} else {
for (InputParameter inputType : configuredInputList) {
switch (inputType) {
case EXCEPTION_CLASS:
inputList.add(cause.getClass().getSimpleName());
break;
case WORK_ITEM_HANDLER_TYPE:
inputList.add(getOriginalTaskHandler().getClass().getSimpleName());
break;
case WORK_ITEM_METHOD:
inputList.add(onExecute ? "execut" : "abort");
break;
case WORK_ITEM_ID:
inputList.add(workItem.getStringId());
break;
case WORK_ITEM_NAME:
inputList.add(workItem.getName());
break;
case WORK_ITEM_PARAMETERS:
StringBuilder parameters = new StringBuilder();
for (String param : workItem.getParameters().keySet()) {
parameters.append(param + " : " + workItem.getParameters().get(param) + ", ");
}
inputList.add(parameters.substring(0, parameters.length() - 2));
break;
case PROCESS_INSTANCE_ID:
inputList.add(String.valueOf(workItem.getProcessInstanceStringId()));
break;
case SERVICE:
inputList.add((String) workItem.getParameter("Interface"));
break;
case OPERATION:
inputList.add((String) workItem.getParameter("Operation"));
break;
}
}
}
String message = MessageFormat.format(configuredMessage, inputList.toArray());
if (printStackTrace) {
logger.warn(message, cause);
} else {
logger.warn(message);
}
}