I don't think it will actually, closing pump and stream that is already closed does not throws exceptions (at least that was my observation). Never the less I'm not sure it's worth maintaining another piece of state for cases where someone may try to destroy already destroyed input stream. Let me know if you think otherwise.