Merge "Call unlockPack in finally"
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java
index 35fb0b17..d4bf812 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java
@@ -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) {