Call unlockPack in finally

The lock is obtained in receivePackAndCheckConnectivity. It seems to me
the structure that requres the caller to unlock the lock is wrong, but
at least by calling in finally ensures it is called even if an exception
is thrown.

Change-Id: I123841b017baf5acffe0064d1004ef11a0a5e6c2
Signed-off-by: Masaya Suzuki <masayasuzuki@google.com>
This commit is contained in:
Masaya Suzuki 2018-11-11 12:27:47 -08:00
parent 54dd1d112a
commit ad379793c7
1 changed files with 17 additions and 11 deletions

View File

@ -269,20 +269,26 @@ private void service() throws IOException {
}
}
if (unpackError == null) {
boolean atomic = isCapabilityEnabled(CAPABILITY_ATOMIC);
setAtomic(atomic);
try {
if (unpackError == null) {
boolean atomic = isCapabilityEnabled(CAPABILITY_ATOMIC);
setAtomic(atomic);
validateCommands();
if (atomic && anyRejects())
failPendingCommands();
validateCommands();
if (atomic && anyRejects()) {
failPendingCommands();
}
preReceive.onPreReceive(this, filterCommands(Result.NOT_ATTEMPTED));
if (atomic && anyRejects())
failPendingCommands();
executeCommands();
preReceive.onPreReceive(
this, filterCommands(Result.NOT_ATTEMPTED));
if (atomic && anyRejects()) {
failPendingCommands();
}
executeCommands();
}
} finally {
unlockPack();
}
unlockPack();
if (reportStatus) {
if (echoCommandFailures && msgOut != null) {