FileLockPacketPayloadTest.groovy

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
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.

  1. … 3 more files in changeset.
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.

    • -0
    • +66
    ./FileLockPacketPayloadTest.groovy
  1. … 5 more files in changeset.