Isn't this set too early? 
It only sets compressedPartSize at end (after renamed)

Doesn't setting it here at start, mean that every progress update between start and end will say hasCompressed=true, but compressedPartSize will always be 0 ?