github a1175815821/MegaDownloader-Revival v1.9.1
MegaDownloader Revival v1.9.1

latest releases: v2.5.5, v2.5.4, v2.5.3...
3 months ago

MegaDownloader Revival v1.9.1

Bug 修复版本

v1.9.0 发布后用户反馈测试时下载文件夹出现 NullReferenceException 崩溃,本版本修复该问题。

下载

文件 说明
MegaDownloader-Revival-v1.9.1-win-x86.zip 完整包,包含主程序 + 8 个依赖 DLL,解压即用(推荐)
MegaDownloader.exe 仅主程序(需自行准备依赖 DLL,推荐下载完整包)

修复

修复下载器 NullReferenceException 崩溃

问题现象:当 MEGA 服务器返回 502 错误网关等异常时(常见于网络不稳定或频繁请求),MegaDownloader 弹出错误窗口显示 System.NullReferenceException: 未将对象引用设置到对象的实例,且整个后台下载线程崩溃,后续文件无法继续下载。

错误位置:Clases/FileDownloader.vb downloadFile() 方法第 681-683 行。

根本原因:

Catch ex As Exception                                          ' ← catch 声明的是 ex
    Log.WriteError("... " & file.Name & " - " & exc.ToString)   ' ← 但代码误用了 exc
    bgwDownloader.ReportProgress(InvokeType.FileDownloadFailedRaiser, exc)  ' ← 同样的错误
End Try

exc 是方法开头声明的局部变量(用于跨 try-catch 累积异常),在前一个 try 块中已被 exc = Nothing 清空。因此当此 catch 块被触发时:

  • ex 保存了真正的异常(如 WebException 502)
  • exc 此时为 Nothing
  • exc.ToString 抛出 NullReferenceException,掩盖了真实的网关错误
  • 二级异常沿调用栈冒泡到 bgwDownloader_DoWork,中断整个下载流程

修复:将 exc 改为 ex,使 catch 块正确引用当前异常对象。

验证方法

  1. 下载并解压 MegaDownloader-Revival-v1.9.1-win-x86.zip
  2. 添加 MEGA 文件夹链接,例如:https://mega.nz/folder/qlkmBSZD#zVgbSBOPRoO291hScORB2Q
  3. 启动下载
  4. 修复前:502 错误时弹窗 NullReferenceException,后续文件不下载
  5. 修复后:502 错误时正确标记该文件为下载失败,后续文件继续下载,日志中能看到真实的 WebException: 远程服务器返回错误: (502) 错误的网关 记录

升级建议

所有 v1.9.0 用户建议升级到 v1.9.1。

完整变更日志

参见 CHANGELOG.md。


Full Changelog: v1.9.0...v1.9.1

Don't miss a new MegaDownloader-Revival release

NewReleases is sending notifications on new releases.