fix DownloadUtil not downloading file if ETag present, but file is not
This commit is contained in:
parent
38c395b2e7
commit
3d21ce811b
2 changed files with 27 additions and 2 deletions
|
@ -42,6 +42,7 @@ import java.net.URL;
|
|||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.zip.ZipError;
|
||||
|
||||
public class MinecraftProvider extends DependencyProvider {
|
||||
|
||||
|
@ -89,7 +90,15 @@ public class MinecraftProvider extends DependencyProvider {
|
|||
libraryProvider.provide(this, project);
|
||||
|
||||
if (!MINECRAFT_MERGED_JAR.exists()) {
|
||||
mergeJars(project.getLogger());
|
||||
try {
|
||||
mergeJars(project.getLogger());
|
||||
} catch (ZipError e) {
|
||||
DownloadUtil.delete(MINECRAFT_CLIENT_JAR);
|
||||
DownloadUtil.delete(MINECRAFT_SERVER_JAR);
|
||||
|
||||
project.getLogger().error("Could not merge JARs! Deleting source JARs - please re-run the command and move on.", e);
|
||||
throw new RuntimeException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -86,7 +86,7 @@ public class DownloadUtil {
|
|||
}
|
||||
|
||||
long modifyTime = connection.getHeaderFieldDate("Last-Modified", -1);
|
||||
if (code == HttpURLConnection.HTTP_NOT_MODIFIED || modifyTime > 0 && to.exists() && to.lastModified() >= modifyTime) {
|
||||
if (to.exists() && (code == HttpURLConnection.HTTP_NOT_MODIFIED || modifyTime > 0 && to.lastModified() >= modifyTime)) {
|
||||
if (!quiet) logger.info("'{}' Not Modified, skipping.", to);
|
||||
return; //What we've got is already fine
|
||||
}
|
||||
|
@ -180,4 +180,20 @@ public class DownloadUtil {
|
|||
return String.format("%.2f GB", bytes / (1024.0 * 1024.0 * 1024.0));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the file along with the corresponding ETag, if it exists.
|
||||
*
|
||||
* @param file The file to delete.
|
||||
*/
|
||||
public static void delete(File file) {
|
||||
if (file.exists()) {
|
||||
file.delete();
|
||||
}
|
||||
|
||||
File etagFile = getETagFile(file);
|
||||
if (etagFile.exists()) {
|
||||
etagFile.delete();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue