Merge branch 'stable-5.9' into stable-5.10

* stable-5.9:
  Fix connection leak for smart http connections

Change-Id: I5e7144b2f5cd850978220c476947001ae2debb8e
This commit is contained in:
Matthias Sohn 2022-06-07 10:42:22 +02:00
commit 85011b8b07
1 changed files with 23 additions and 11 deletions

View File

@ -1336,13 +1336,18 @@ class SmartHttpFetchConnection extends BasePackFetchConnection {
}
@Override
protected void doFetch(final ProgressMonitor monitor,
final Collection<Ref> want, final Set<ObjectId> have,
final OutputStream outputStream) throws TransportException {
try {
svc = new MultiRequestService(SVC_UPLOAD_PACK);
init(svc.getInputStream(), svc.getOutputStream());
protected void doFetch(ProgressMonitor monitor, Collection<Ref> want,
Set<ObjectId> have, OutputStream outputStream)
throws TransportException {
svc = new MultiRequestService(SVC_UPLOAD_PACK);
try (InputStream svcIn = svc.getInputStream();
OutputStream svcOut = svc.getOutputStream()) {
init(svcIn, svcOut);
super.doFetch(monitor, want, have, outputStream);
} catch (TransportException e) {
throw e;
} catch (IOException e) {
throw new TransportException(e.getMessage(), e);
} finally {
svc = null;
}
@ -1366,12 +1371,19 @@ class SmartHttpPushConnection extends BasePackPushConnection {
}
@Override
protected void doPush(final ProgressMonitor monitor,
final Map<String, RemoteRefUpdate> refUpdates,
protected void doPush(ProgressMonitor monitor,
Map<String, RemoteRefUpdate> refUpdates,
OutputStream outputStream) throws TransportException {
final Service svc = new MultiRequestService(SVC_RECEIVE_PACK);
init(svc.getInputStream(), svc.getOutputStream());
super.doPush(monitor, refUpdates, outputStream);
Service svc = new MultiRequestService(SVC_RECEIVE_PACK);
try (InputStream svcIn = svc.getInputStream();
OutputStream svcOut = svc.getOutputStream()) {
init(svcIn, svcOut);
super.doPush(monitor, refUpdates, outputStream);
} catch (TransportException e) {
throw e;
} catch (IOException e) {
throw new TransportException(e.getMessage(), e);
}
}
}