fix partial java download

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
Trial97
2025-12-12 09:34:54 +02:00
parent bc68192895
commit 0f7320ff1d
2 changed files with 6 additions and 3 deletions

View File

@@ -109,7 +109,8 @@ void AutoInstallJava::executeTask()
return; return;
} }
QDir javaDir(APPLICATION->javaPath()); QDir javaDir(APPLICATION->javaPath());
auto wantedJavaPath = javaDir.absoluteFilePath(wantedJavaName); auto relativeBinary = FS::PathCombine(wantedJavaName, "bin", JavaUtils::javaExecutable);
auto wantedJavaPath = javaDir.absoluteFilePath(relativeBinary);
if (QFileInfo::exists(wantedJavaPath)) { if (QFileInfo::exists(wantedJavaPath)) {
setJavaPathFromPartial(); setJavaPathFromPartial();
return; return;
@@ -165,6 +166,7 @@ void AutoInstallJava::downloadJava(Meta::Version::Ptr version, QString javaName)
if (java->runtimeOS == m_supported_arch && java->name() == javaName) { if (java->runtimeOS == m_supported_arch && java->name() == javaName) {
QDir javaDir(APPLICATION->javaPath()); QDir javaDir(APPLICATION->javaPath());
auto final_path = javaDir.absoluteFilePath(java->m_name); auto final_path = javaDir.absoluteFilePath(java->m_name);
auto deletePath = [final_path] { FS::deletePath(final_path); };
switch (java->downloadType) { switch (java->downloadType) {
case Java::DownloadType::Manifest: case Java::DownloadType::Manifest:
m_current_task = makeShared<Java::ManifestDownloadTask>(java->url, final_path, java->checksumType, java->checksumHash); m_current_task = makeShared<Java::ManifestDownloadTask>(java->url, final_path, java->checksumType, java->checksumHash);
@@ -174,6 +176,7 @@ void AutoInstallJava::downloadJava(Meta::Version::Ptr version, QString javaName)
break; break;
case Java::DownloadType::Unknown: case Java::DownloadType::Unknown:
emitFailed(tr("Could not determine Java download type!")); emitFailed(tr("Could not determine Java download type!"));
deletePath();
return; return;
} }
#if defined(Q_OS_MACOS) #if defined(Q_OS_MACOS)
@@ -182,12 +185,11 @@ void AutoInstallJava::downloadJava(Meta::Version::Ptr version, QString javaName)
seq->addTask(makeShared<Java::SymlinkTask>(final_path)); seq->addTask(makeShared<Java::SymlinkTask>(final_path));
m_current_task = seq; m_current_task = seq;
#endif #endif
auto deletePath = [final_path] { FS::deletePath(final_path); };
connect(m_current_task.get(), &Task::failed, this, [this, deletePath](QString reason) { connect(m_current_task.get(), &Task::failed, this, [this, deletePath](QString reason) {
deletePath(); deletePath();
emitFailed(reason); emitFailed(reason);
}); });
connect(m_current_task.get(), &Task::aborted, this, [deletePath] { deletePath(); }); connect(m_current_task.get(), &Task::aborted, this, deletePath);
connect(m_current_task.get(), &Task::succeeded, this, &AutoInstallJava::setJavaPathFromPartial); connect(m_current_task.get(), &Task::succeeded, this, &AutoInstallJava::setJavaPathFromPartial);
connect(m_current_task.get(), &Task::failed, this, &AutoInstallJava::tryNextMajorJava); connect(m_current_task.get(), &Task::failed, this, &AutoInstallJava::tryNextMajorJava);
connect(m_current_task.get(), &Task::progress, this, &AutoInstallJava::setProgress); connect(m_current_task.get(), &Task::progress, this, &AutoInstallJava::setProgress);

View File

@@ -315,6 +315,7 @@ void InstallDialog::done(int result)
QString error = QString(tr("Could not determine Java download type!")); QString error = QString(tr("Could not determine Java download type!"));
CustomMessageBox::selectable(this, tr("Error"), error, QMessageBox::Warning)->show(); CustomMessageBox::selectable(this, tr("Error"), error, QMessageBox::Warning)->show();
deletePath(); deletePath();
return;
} }
#if defined(Q_OS_MACOS) #if defined(Q_OS_MACOS)
auto seq = makeShared<SequentialTask>(tr("Install Java")); auto seq = makeShared<SequentialTask>(tr("Install Java"));