protected String execute()

in src/main/java/com/amazonaws/services/simpleworkflow/flow/pojo/POJOActivityImplementation.java [64:92]


    protected String execute(String input, ActivityExecutionContext context) throws ActivityFailureException, CancellationException {
        Object[] inputParameters = ThreadLocalMetrics.getMetrics().recordSupplier(
            () -> converter.fromData(input, Object[].class),
            converter.getClass().getSimpleName() + "@" + MetricName.Operation.DATA_CONVERTER_DESERIALIZE.getName(),
            TimeUnit.MILLISECONDS
        );
        CurrentActivityExecutionContext.set(context);
        Object result = null;
        try {
            // Fill missing parameters with default values to make addition of new parameters backward compatible
            inputParameters = FlowHelpers.getInputParameters(activity.getParameterTypes(), inputParameters);
            result = activity.invoke(activitiesImplementationObject, inputParameters);
        }
        catch (InvocationTargetException invocationException) {
            throwActivityFailureException(invocationException.getTargetException() != null ? invocationException.getTargetException()
                    : invocationException);
        }
        catch (IllegalArgumentException | IllegalAccessException illegalArgumentException) {
            throwActivityFailureException(illegalArgumentException);
        } finally {
            CurrentActivityExecutionContext.unset();
        }
        final Object finalResult = result;
        return ThreadLocalMetrics.getMetrics().recordSupplier(
            () -> converter.toData(finalResult),
            converter.getClass().getSimpleName() + "@" + MetricName.Operation.DATA_CONVERTER_SERIALIZE.getName(),
            TimeUnit.MILLISECONDS
        );
    }