When a DataFileReader is constructed by passing it a java.io.File and the is subsequently closed, the underlying FileInputStream is not getting closed. It manifests as an error in mapreduce tests in Windows machines. The files produced by mappers/reducers are opened as DataFiles for checking and, due to this bug, the handles are not closed. So subsequent delete operation on the file fails. And future mapper/reducer complains that the output already exists.