diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/FetchProcess.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/FetchProcess.java index 0f1892a97..45adfa652 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/FetchProcess.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/FetchProcess.java @@ -87,13 +87,20 @@ void execute(ProgressMonitor monitor, FetchResult result) packLocks.clear(); localRefs = null; + Throwable e1 = null; try { executeImp(monitor, result); + } catch (NotSupportedException | TransportException err) { + e1 = err; + throw err; } finally { try { for (PackLock lock : packLocks) lock.unlock(); } catch (IOException e) { + if (e1 != null) { + e.addSuppressed(e1); + } throw new TransportException(e.getMessage(), e); } }