mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[fus] Remove the download event in favor of jdk.downloaded
#FUS-4892 GitOrigin-RevId: 7743d59cded17d3e46fea731ed14f2eba5d4b19d
This commit is contained in:
committed by
intellij-monorepo-bot
parent
644968061a
commit
556f99ad92
+6
-13
@@ -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) {
|
||||
|
||||
+10
-4
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user