From 8b4849ac10651f0749bc660a06a5598bb09e672f Mon Sep 17 00:00:00 2001 From: Alexander McLean Date: Fri, 18 Apr 2025 16:16:45 -0400 Subject: [PATCH 1/2] fixed possible NumberFormatException for vinyl releases --- .../MusicBrainzJSONReader.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/CDPrintable/MusicBrainzResources/MusicBrainzJSONReader.java b/src/main/java/com/CDPrintable/MusicBrainzResources/MusicBrainzJSONReader.java index 439a05b..e8dfcd5 100644 --- a/src/main/java/com/CDPrintable/MusicBrainzResources/MusicBrainzJSONReader.java +++ b/src/main/java/com/CDPrintable/MusicBrainzResources/MusicBrainzJSONReader.java @@ -266,6 +266,7 @@ public MusicBrainzTrack[] getReleaseTracks() { JOptionPane.showMessageDialog(null, "No media found in JSON.", "Error", JOptionPane.ERROR_MESSAGE); return new MusicBrainzTrack[0]; } + boolean vinylWarningShown = false, tnWarningShown = false; for (JsonElement mediaElement : mediaArray) { JsonObject mediaObject = mediaElement.getAsJsonObject(); // Cast each element to JsonObject JsonArray trackArray = mediaObject.getAsJsonArray("tracks"); @@ -274,9 +275,29 @@ public MusicBrainzTrack[] getReleaseTracks() { String title = jsonHasAndIsNotNull(trackObject, "title") ? trackObject.get("title").getAsString() : null; int length = jsonHasAndIsNotNull(trackObject, "length") ? trackObject.get("length").getAsInt() : -1; int trackNumber = -1; + // tn represents track number if (trackObject.has("number")) { - trackNumber = trackObject.get("number").getAsInt(); + try { + // I guess that some vinyl discs have track number A1 which nukes this program. + trackNumber = trackObject.get("number").getAsInt(); + } catch (NumberFormatException e) { + if (!vinylWarningShown) { + JOptionPane.showMessageDialog(null, "This is most likely a vinyl release. Track numbers are different on vinyl, but this release will still be processed. \n Things might get funky from here :/"); + vinylWarningShown = true; + } + // Try to see if position exists instead + if (trackObject.has("position")) { + try { + trackNumber = trackObject.get("position").getAsInt(); + } catch (NumberFormatException e2) { + if (!tnWarningShown) { + JOptionPane.showMessageDialog(null, "This release dosen't have correctly formatted track numbers. \n It will still be processed, but things might get strange from here.", "Warning", JOptionPane.WARNING_MESSAGE); + tnWarningShown = true; + } + } + } + } } else if (trackObject.has("position")) { trackNumber = trackObject.get("position").getAsInt(); } From 2bfd6039a7affb10a052a6286bf53e6f2a234dfc Mon Sep 17 00:00:00 2001 From: Alexander McLean Date: Fri, 18 Apr 2025 16:27:19 -0400 Subject: [PATCH 2/2] forgot to update ver lol --- src/main/resources/version.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/version.properties b/src/main/resources/version.properties index 00dacdd..95acfff 100644 --- a/src/main/resources/version.properties +++ b/src/main/resources/version.properties @@ -1,4 +1,4 @@ # Application version. # MAJOR MINOR PATCH -version=1.10.9 \ No newline at end of file +version=1.10.10 \ No newline at end of file