Handle missing type correctly When communicating with an old version, the length of the received packet will be shorter than the byte array. Now, `FileLockPacketPayload` only reads the type when it has been received and returns UNKNOWN if it has not. Previously, it would have worked by accident because the last byte was zero which corresponds to the ordinal number of UNKNOWN.
Make file lock packet type explicit `FileLockCommunicator` now includes an additional byte that represents the `FileLockPacketType` when sending packets to other processes. `DefaultFileLockContentionHandler` now checks for the `LOCK_RELEASE_CONFIRMATION` type instead of interpreting any packet for a lock for which it already has received a packet as a lock release confirmation.
Adding the additional byte will be ignored by old versions which only read the first 9 bytes. New versions can still read packets from old versions that do not include the byte. They use the `UNKNOWN` type in this case. Thus, this protocol change is backwards compatible.