Thanks for updating the patch!
Technically moveToDoneNow can end up failing silently if the staging directory does not exist. moveToDoneNow could return a boolean result so the caller can know whether the move actually was performed.
For the test it would be better to split them into two separate tests, otherwise we're making assumptions that sending two job finished events is something the job history event handler expects and handles properly, which isn't something it would normally see in practice.
I had to mock up more stuff than I wanted to to get this to work.
Another way to approach the test is to get the moveToDoneNow method to throw an IOException, and that's going to test the most likely error to happen with the code rather than clearing the fileMap which isn't a likely scenario. moveToDoneNow could be upgraded from private to protected so the test class can override the behavior to always throw for that test.
It would be good to address the checkstyle issues as well.