Coder Social home page Coder Social logo

installertools's People

Contributors

daemonumbra avatar ichttt avatar lexmanos avatar lukebemish avatar marchermans avatar matyrobbrt avatar neoforged-renovate[bot] avatar paintninja avatar sizableshrimp avatar thesilkminer avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

installertools's Issues

Bad zip errors are hard to debug

Currently when you attempt to run the installer on a corrupt zip you get an output such as

Exception in thread "main" java.util.zip.ZipError: zip END header not found
	at com.sun.nio.zipfs.ZipFileSystem.zerror(ZipFileSystem.java:1661)
	at com.sun.nio.zipfs.ZipFileSystem.findEND(ZipFileSystem.java:1040)
	at com.sun.nio.zipfs.ZipFileSystem.initCEN(ZipFileSystem.java:1049)
	at com.sun.nio.zipfs.ZipFileSystem.<init>(ZipFileSystem.java:130)
	at com.sun.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:139)
	at java.nio.file.FileSystems.newFileSystem(FileSystems.java:390)
	at net.neoforged.cliutils.JarUtils.getFileCountInZip(JarUtils.java:15)
	at net.neoforged.jarsplitter.ConsoleTool.main(ConsoleTool.java:96)

(this particular output is from running jar splitter from the console with a corrupt Minecraft jar (.minecraft/versions/1.21/1.21.jar) passed in)

This error and stacktrace is slightly helpful at figuring out what is wrong, until I go look at that class and see there are four possible files that it could be throwing on. And for the average user that has no idea what zip END header not found means (the zip is bad, most likely corrupt), or how to read code so it is of no help to them.
A similar situation can happen in other places in the code, where zips are just opened and assumed to be good, causing annoying to debug errors when they are not.
Examples of this happening, from the NeoForge discord: 1 2.

I see two potential solutions could to fix this.

  1. Each opening gets wrapped in a try catch so that a more informative error (including the file name!) can be thrown.
  2. Each file name is logged before it gets opened, so that when reading the logs/terminal output one can see which file was last attempted to be opened. This is the worse solution as it increases log spam.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Pending Approval

These branches will be created by Renovate only once you click their checkbox below.

  • Update dependency net.md-5:SpecialSource to v1.11.4
  • Update dependency net.neoforged:srgutils to v1.0.9
  • Update plugin net.neoforged.gradleutils to v3.0.0
  • Update dependency com.google.code.gson:gson to v2.11.0
  • Update dependency de.siegmar:fastcsv to v2.2.2
  • Update dependency gradle to v8.10
  • Update dependency org.assertj:assertj-core to v3.26.3
  • Update dependency org.junit.platform:junit-platform-launcher to v1.11.0
  • Update dependency org.ow2.asm:asm-commons to v9.7
  • Update junit to v5.11.0 (org.junit.jupiter:junit-jupiter-engine, org.junit.jupiter:junit-jupiter-api)
  • Update dependency de.siegmar:fastcsv to v3
  • ๐Ÿ” Create all pending approval PRs at once ๐Ÿ”

Detected dependencies

github-actions
.github/workflows/build-prs.yml
.github/workflows/publish-prs.yml
.github/workflows/release.yml
gradle
settings.gradle
  • org.junit.jupiter:junit-jupiter-api 5.10.0
  • org.junit.jupiter:junit-jupiter-engine 5.10.0
  • org.junit.platform:junit-platform-launcher 1.10.0
  • org.assertj:assertj-core 3.25.1
  • net.neoforged:srgutils 1.0.0
  • net.sf.jopt-simple:jopt-simple 5.0.4
  • com.github.jponge:lzma-java 1.3
  • com.nothome:javaxdelta 2.0.1
build.gradle
  • org.cadixdev.licenser 0.6.1
  • com.github.johnrengelman.shadow 8.1.1
  • net.neoforged.gradleutils 3.0.0-alpha.10
  • com.google.code.gson:gson 2.8.9
  • net.md-5:SpecialSource 1.11.0
  • de.siegmar:fastcsv 2.0.0
  • org.ow2.asm:asm-commons 9.3
binarypatcher/build.gradle
cli-utils/build.gradle
jarsplitter/build.gradle
zipinject/build.gradle
gradle-wrapper
gradle/wrapper/gradle-wrapper.properties
  • gradle 8.8

  • Click to force Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.