private void logMessage()

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);
        }
    }