From 8a25349b55afa5babb529c69c04eb693555aff88 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Thu, 13 Aug 2020 19:16:32 +0200 Subject: [PATCH] [platform] better diagnostics for corrupted patch files (IDEA-247985) GitOrigin-RevId: be0f30e29af50b5ecc7b7be56371c442539562d6 --- .../openapi/updateSettings/impl/UpdateInstaller.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateInstaller.kt b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateInstaller.kt index 7e7c766e5326..2b45327d3270 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateInstaller.kt +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateInstaller.kt @@ -23,6 +23,7 @@ import java.io.IOException import java.net.URL import java.nio.file.Files import java.nio.file.Paths +import java.util.zip.ZipException import java.util.zip.ZipFile import javax.swing.JComponent import javax.swing.UIManager @@ -61,11 +62,16 @@ internal object UpdateInstaller { } } HttpRequests.request(url).gzip(false).saveToFile(patchFile, partIndicator) - ZipFile(patchFile).use { - if (it.getEntry(PATCH_FILE_NAME) == null || it.getEntry(UPDATER_ENTRY) == null) { - throw IOException("Corrupted patch file: ${patchFile.name}") + try { + ZipFile(patchFile).use { + if (it.getEntry(PATCH_FILE_NAME) == null || it.getEntry(UPDATER_ENTRY) == null) { + throw IOException("Corrupted patch file: ${patchFile.name}") + } } } + catch (e: ZipException) { + throw IOException("Corrupted patch file: ${patchFile.name}", e) + } files += patchFile }