question: this method is idempotent . concode_field_sep long startTime concode_elem_sep OperatingSystemMXBean OS_JMX concode_elem_sep ImmutableList<String> shellCommandArgs concode_elem_sep Optional<String> stdout concode_elem_sep Path workingDirectory concode_elem_sep Logger LOG concode_elem_sep Optional<String> stderr concode_elem_sep long endTime concode_field_sep int launchAndInteractWithProcess concode_elem_sep Optional<Function<Process,Void>> getTimeoutHandler concode_elem_sep ImmutableList<String> getShellCommandInternal concode_elem_sep ImmutableMap<String,String> getEnvironmentVariables concode_elem_sep boolean shouldPrintStdout concode_elem_sep String getStdout concode_elem_sep void setProcessEnvironment concode_elem_sep boolean shouldFlushStdOutErrAsProgressIsMade concode_elem_sep int execute concode_elem_sep String getDescription concode_elem_sep long getDuration concode_elem_sep Optional<Long> getTimeout concode_elem_sep int getExitCodeFromResult concode_elem_sep Optional<String> getStdin concode_elem_sep void addOptions concode_elem_sep boolean shouldPrintStderr concode_elem_sep String getStderr
target: ImmutableList < String > function ( ExecutionContext arg0 ) { if ( shellCommandArgs == null ) { shellCommandArgs = getShellCommandInternal ( arg0 ) ; LOG . debug ( "srini_string" , Joiner . on ( "srini_string" ) . join ( shellCommandArgs ) ) ; } return shellCommandArgs ; }