Buggy code:
public class ExecTask extends Task { private static final FileUtils FILE_UTILS = FileUtils . getFileUtils ( ) ; private String os ; private String osFamily ; private File dir ; protected boolean failOnError = false ; protected boolean newEnvironment = false ; private Long timeout = null ; private Environment env = new Environment ( ) ; protected Commandline cmdl = new Commandline ( ) ; private String resultProperty ; private boolean failIfExecFails = true ; private String executable ; private boolean resolveExecutable = false ; private boolean searchPath = false ; private boolean spawn = false ; private boolean incompatibleWithSpawn = false ; private String inputString ; private File input ; private File output ; private File error ; protected Redirector redirector = new Redirector ( this ) ; protected RedirectorElement redirectorElement ; private boolean vmLauncher = true ; public ExecTask ( ) { } public ExecTask ( Task owner ) { } public void setSpawn ( boolean spawn ) { } public void setTimeout ( Long value ) { } public void setTimeout ( Integer value ) { } public void setExecutable ( String value ) { } public void setDir ( File d ) { } public void setOs ( String os ) { } public final String getOs ( ) { } public void setCommand ( Commandline cmdl ) { } public void setOutput ( File out ) { } public void setInput ( File input ) { } public void setInputString ( String inputString ) { } public void setLogError ( boolean logError ) { } public void setError ( File error ) { } public void setOutputproperty ( String outputProp ) { } public void setErrorProperty ( String errorProperty ) { } public void setFailonerror ( boolean fail ) { } public void setNewenvironment ( boolean newenv ) { } public void setResolveExecutable ( boolean resolveExecutable ) { } public void setSearchPath ( boolean searchPath ) { } public boolean getResolveExecutable ( ) { } public void addEnv ( Environment . Variable var ) { } public Argument createArg ( ) { } public void setResultProperty ( String resultProperty ) { } protected void maybeSetResultPropertyValue ( int result ) { } public void setFailIfExecutionFails ( boolean flag ) { } public void setAppend ( boolean append ) { } public void addConfiguredRedirector ( RedirectorElement redirectorElement ) { } public void setOsFamily ( String osFamily ) { <START_BUG> this . osFamily = osFamily . toLowerCase ( Locale . US ) ; <END_BUG> } public final String getOsFamily ( ) { } protected String resolveExecutable ( String exec , boolean mustSearchPath ) { } public void execute ( ) throws BuildException { } protected void checkConfiguration ( ) throws BuildException { } protected void setupRedirector ( ) { } protected boolean isValidOs ( ) { } public void setVMLauncher ( boolean vmLauncher ) { } protected Execute prepareExec ( ) throws BuildException { } protected final void runExecute ( Execute exe ) throws IOException { } protected void runExec ( Execute exe ) throws BuildException { } protected ExecuteStreamHandler createHandler ( ) throws BuildException { } protected ExecuteWatchdog createWatchdog ( ) throws BuildException { } protected void logFlush ( ) { } private boolean isPath ( String line ) { } private String getPath ( String line ) { } }

Fix:
this . osFamily = osFamily . toLowerCase ( Locale . ENGLISH ) ;