Where is the second save called?  The only place I see GenericFile#characterize called is in the CharacterizeJob, which does a GenericFile.find(pid), so it's never a new file.