[fus] Remove the download event in favor of jdk.downloaded

#FUS-4892

GitOrigin-RevId: 7743d59cded17d3e46fea731ed14f2eba5d4b19d
This commit is contained in:
Louis Vignier
2024-09-13 16:50:25 +00:00
committed by intellij-monorepo-bot
parent 644968061a
commit 556f99ad92
2 changed files with 16 additions and 17 deletions
@@ -11,9 +11,7 @@ import org.jetbrains.jps.model.java.JdkVersionDetector
internal object JdkDownloaderLogger : CounterUsagesCollector() {
override fun getGroup(): EventLogGroup = GROUP
private val GROUP: EventLogGroup = EventLogGroup("jdk.downloader", 5)
private val DOWNLOAD: EventId1<Boolean> = GROUP.registerEvent("download", EventFields.Boolean("success"))
private val GROUP: EventLogGroup = EventLogGroup("jdk.downloader", 6)
private val DETECTED_SDK: EventId2<String?, Int> = GROUP.registerEvent("detected",
EventFields.String("product", JdkVersionDetector.VENDORS),
@@ -30,17 +28,12 @@ internal object JdkDownloaderLogger : CounterUsagesCollector() {
WrongProtocol, WSLIssue, FileDoesNotExist, RuntimeException, IncorrectFileSize, ChecksumMismatch, ExtractionFailed, Cancelled,
}
fun logDownload(success: Boolean) {
DOWNLOAD.log(success)
}
@Deprecated(message = "Use logDownload(JdkItem) instead")
fun logDownload(success: Boolean) {}
fun logDownload(success: Boolean, item: JdkItem) {
DOWNLOAD.log(success)
if (success) {
val variant = item.detectVariant()
DOWNLOADED_SDK.log(variant.displayName, item.jdkMajorVersion)
}
fun logDownload(item: JdkItem) {
val variant = item.detectVariant()
DOWNLOADED_SDK.log(variant.displayName, item.jdkMajorVersion)
}
fun logFailed(failure: DownloadFailure) {
@@ -233,14 +233,17 @@ abstract class JdkInstallerBase {
val targetDir = request.installDir
val url = Urls.parse(item.url, false) ?: error("Cannot parse download URL: ${item.url}")
var logFailed = false
if (!url.scheme.equals("https", ignoreCase = true)) {
JdkDownloaderLogger.logFailed(JdkDownloaderLogger.DownloadFailure.WrongProtocol)
logFailed = true
error("URL must use https:// protocol, but was: $url")
}
val wslDistribution = wslDistributionFromPath(targetDir)
if (wslDistribution != null && item.os != "linux") {
JdkDownloaderLogger.logFailed(JdkDownloaderLogger.DownloadFailure.WSLIssue)
logFailed = true
error("Cannot install non-linux JDK into WSL environment to $targetDir from $item")
}
@@ -254,18 +257,21 @@ abstract class JdkInstallerBase {
if (!downloadFile.isRegularFile()) {
JdkDownloaderLogger.logFailed(JdkDownloaderLogger.DownloadFailure.FileDoesNotExist)
logFailed = true
throw RuntimeException("Downloaded file does not exist: $downloadFile")
}
}
catch (t: Throwable) {
if (t is ControlFlowException) throw t
JdkDownloaderLogger.logFailed(JdkDownloaderLogger.DownloadFailure.RuntimeException)
logFailed = true
throw RuntimeException("Failed to download ${item.fullPresentationText} from $url. ${t.message}", t)
}
val sizeDiff = runCatching { Files.size(downloadFile) - item.archiveSize }.getOrNull()
if (sizeDiff != 0L) {
JdkDownloaderLogger.logFailed(JdkDownloaderLogger.DownloadFailure.IncorrectFileSize)
logFailed = true
throw RuntimeException("The downloaded ${item.fullPresentationText} has incorrect file size,\n" +
"the difference is ${sizeDiff?.absoluteValue ?: "unknown" } bytes.\n" +
"Check your internet connection and try again later")
@@ -298,18 +304,18 @@ abstract class JdkInstallerBase {
}
runCatching { writeMarkerFile(request) }
JdkDownloaderLogger.logDownload(true, item)
JdkDownloaderLogger.logDownload(item)
}
catch (t: Throwable) {
if (t is ControlFlowException) throw t
JdkDownloaderLogger.logFailed(JdkDownloaderLogger.DownloadFailure.ExtractionFailed)
logFailed = true
throw RuntimeException("Failed to extract ${item.fullPresentationText}. ${t.message}", t)
}
}
catch (t: Throwable) {
//if we were cancelled in the middle or failed, let's clean up
JdkDownloaderLogger.logDownload(false)
JdkDownloaderLogger.logFailed(JdkDownloaderLogger.DownloadFailure.Cancelled)
// Cleanup
if (!logFailed) JdkDownloaderLogger.logFailed(JdkDownloaderLogger.DownloadFailure.Cancelled)
targetDir.delete()
markerFile(targetDir)?.delete()
throw t