Do not delete the source file finally, only delete if no exceptions...
Check enough size before writing
More intelligent append with the use of file length
Better use of try-finally. Logging of error when interrupted while waiting for lock
Do not fail hard on init if a tape cannot be read. Rather, log an error and ignore anything further in that tape
Always create a new tape when starting up, as this prevents issues with junk in the end of the previous one. This junk is ignored when it is indexed, just leading to a warning in the log now