Skip to content

Commit e16671a

Browse files
author
Ivan Duplenskikh
committed
Add zipStream destroy call when response is aborted
1 parent 70c2754 commit e16671a

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

Extensions/ArtifactEngine/Providers/webProvider.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ export class WebProvider implements IArtifactProvider {
5050
var downloadSize: number = 0;
5151
var contentType: string = artifactItem.contentType;
5252
var itemUrl: string = artifactItem.metadata['downloadUrl'];
53+
var zipStream = null;
5354
itemUrl = itemUrl.replace(/([^:]\/)\/+/g, "$1");
5455
this.webClient.get(itemUrl, contentType ? { 'Accept': contentType } : undefined).then((res: HttpClientResponse) => {
5556
res.message.on('data', (chunk) => {
@@ -59,12 +60,17 @@ export class WebProvider implements IArtifactProvider {
5960
this.artifactItemStore.updateDownloadSize(artifactItem, downloadSize);
6061
});
6162
res.message.on('error', (error) => {
63+
if (zipStream) {
64+
zipStream.destroy(error);
65+
Logger.logMessage(error);
66+
}
6267
reject(error);
6368
});
6469

6570
if (res.message.headers['content-encoding'] === 'gzip') {
6671
try {
67-
resolve(res.message.pipe(zlib.createUnzip()));
72+
zipStream = zlib.createUnzip();
73+
resolve(res.message.pipe(zipStream));
6874
}
6975
catch (err) {
7076
reject(err);

0 commit comments

Comments
 (0)