In EventQueueBackingStoreFileV3 constructor, if it detects that the checkpoint and meta files have differing logWriteOrderIds, it throws a BadCheckpointException. Controls goes back to the exception handler in Log.replay() which attempts to delete all the files in checkpoint directory and start fresh. The same file names are reused when starting fresh.
Unfortunately this does not work on Windows since the deletion of the checkpoint file in the checkpointDir fails. The failure is due to the fact that the checkpoint file is memory mapped. Unless it is unmapped the deletion will not succeed... and unfortunately Java does not have unmap support. Windows does not permit deletion (or renaming) of files in use.