tonikelope / megabasterd

Yet another unofficial (and ugly) cross-platform MEGA downloader/uploader/streaming suite.
GNU General Public License v3.0
4.61k stars 598 forks source link

Code now broken for Java8 #600

Closed kaufmand closed 11 months ago

kaufmand commented 11 months ago

The last version that worked for Java8 was 8.5. Since then an exception is thrown when trying to download with a folder URL, with the Debug log showing: Exception in thread "pool-1-thread-12" java.lang.NoSuchMethodError: java.nio.file.Path.of(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path; at com.tonikelope.megabasterd.MegaAPI.writeCachedFolderNodes(MegaAPI.java:1081) at com.tonikelope.megabasterd.MegaAPI.getFolderNodes(MegaAPI.java:1106) at com.tonikelope.megabasterd.FolderLinkDialog._loadMegaDirTree(FolderLinkDialog.java:465) at com.tonikelope.megabasterd.FolderLinkDialog.lambda$new$4(FolderLinkDialog.java:103) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Path.of was not introduced until Java11. Could you use instead Paths.get, which would be compatible with Java 8? I am using the latest version of Oracle Java 8. Thanks.

kaufmand commented 11 months ago

Thanks for fixing the Java8 problem with Path.of. This exposed another incompatibility with Java8. File.writeString was also introduced in Java11 and is incompatible with Java8. It looks like that is used once in MegaAPI.java. Could you use instead File.write, which would be compatible? Thanks. Here is the latest from the Debug log.

Exception in thread "pool-1-thread-11" java.lang.NoSuchMethodError: java.nio.file.Files.writeString(Ljava/nio/file/Path;Ljava/lang/CharSequence;[Ljava/nio/file/OpenOption;)Ljava/nio/file/Path; at com.tonikelope.megabasterd.MegaAPI.writeCachedFolderNodes(MegaAPI.java:1080) at com.tonikelope.megabasterd.MegaAPI.getFolderNodes(MegaAPI.java:1105) at com.tonikelope.megabasterd.FolderLinkDialog._loadMegaDirTree(FolderLinkDialog.java:465) at com.tonikelope.megabasterd.FolderLinkDialog.lambda$new$4(FolderLinkDialog.java:103) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

kaufmand commented 11 months ago

Thanks for fixing this so promptly. Version 8.13 is working for me in Java 8.