From 7c2344477058597bc37245fd6a6a2f77c96ca511 Mon Sep 17 00:00:00 2001 From: siddu017 Date: Wed, 30 Jul 2025 22:49:21 +0530 Subject: [PATCH 1/7] bug: handles null pointer exception in youtububeorinstagram method in filedownloader(#8) Signed-off-by: siddu017 --- .idea/misc.xml | 1 - GUI/src/main/java/backend/FileDownloader.java | 12 ++++++++---- desktop.ini | 2 ++ 3 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 desktop.ini diff --git a/.idea/misc.xml b/.idea/misc.xml index 001e75669..d85b6edb2 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/GUI/src/main/java/backend/FileDownloader.java b/GUI/src/main/java/backend/FileDownloader.java index b74cc14b8..d387ab8ed 100644 --- a/GUI/src/main/java/backend/FileDownloader.java +++ b/GUI/src/main/java/backend/FileDownloader.java @@ -112,7 +112,7 @@ protected Integer call() { } updateProgress(0.0, 1.0); done = true; - return exitCode; + return exitCode; } private void downloadYoutubeOrInstagram(boolean isSpotifySong) { @@ -120,12 +120,14 @@ private void downloadYoutubeOrInstagram(boolean isSpotifySong) { ProcessBuilder processBuilder = new ProcessBuilder(fullCommand); sendInfoMessage(String.format(DOWNLOADING_F, filename)); Process process = null; + int exitCode=-1; try { process = processBuilder.start(); } catch (IOException e) { M.msgDownloadError("Failed to start download process for \"" + filename + "\""); + return; } catch (Exception e) { - String msg = e.getMessage(); + String msg = e.getMessage() !=null ? e.getMessage():""; String[] messageArray = msg.split(","); if (messageArray.length >= 1 && messageArray[0].toLowerCase().trim().replaceAll(" ", "").contains("cannotrunprogram")) { // If yt-dlp program is not marked as executable M.msgDownloadError(DRIFTY_COMPONENT_NOT_EXECUTABLE_ERROR); @@ -136,8 +138,9 @@ private void downloadYoutubeOrInstagram(boolean isSpotifySong) { } else { M.msgDownloadError("An Unknown Error occurred! " + e.getMessage()); } + return; } - try (BufferedReader reader = new BufferedReader(new InputStreamReader(Objects.requireNonNull(process).getInputStream()))) { + try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) { String line; while ((line = reader.readLine()) != null) { progressProperty.setValue(line); @@ -146,9 +149,10 @@ private void downloadYoutubeOrInstagram(boolean isSpotifySong) { M.msgDownloadError("Failed to read download process status for \"" + filename + "\""); } try { - exitCode = Objects.requireNonNull(process).waitFor(); + exitCode = process.waitFor(); } catch (InterruptedException e) { M.msgDownloadError("Failed to wait for download process to finish for \"" + filename + "\""); + return; } if (isSpotifySong && exitCode == 0) { sendInfoMessage("Converting to mp3 ..."); diff --git a/desktop.ini b/desktop.ini new file mode 100644 index 000000000..ae015df75 --- /dev/null +++ b/desktop.ini @@ -0,0 +1,2 @@ +[.ShellClassInfo] +LocalizedResourceName=@Drifty,0 From c1ccee10f73ea7b6d0f9266a6734566a0bc896a9 Mon Sep 17 00:00:00 2001 From: siddu017 Date: Wed, 30 Jul 2025 23:20:35 +0530 Subject: [PATCH 2/7] commmented out the linter.yml repo name Signed-off-by: siddu017 --- .github/workflows/linter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 8e4f45666..d2b33a9b6 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -8,7 +8,7 @@ on: jobs: build: name: Lint Code Base - if: github.repository == 'SaptarshiSarkar12/Drifty' + #if: github.repository == 'SaptarshiSarkar12/Drifty' runs-on: ubuntu-latest permissions: contents: read From ace680529bde240f7e59fc544d476383ef5e9ee2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 30 Jul 2025 17:56:09 +0000 Subject: [PATCH 3/7] style: format codebase Signed-off-by: siddu017 --- GUI/src/main/java/backend/FileDownloader.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GUI/src/main/java/backend/FileDownloader.java b/GUI/src/main/java/backend/FileDownloader.java index d387ab8ed..44e41564d 100644 --- a/GUI/src/main/java/backend/FileDownloader.java +++ b/GUI/src/main/java/backend/FileDownloader.java @@ -120,14 +120,14 @@ private void downloadYoutubeOrInstagram(boolean isSpotifySong) { ProcessBuilder processBuilder = new ProcessBuilder(fullCommand); sendInfoMessage(String.format(DOWNLOADING_F, filename)); Process process = null; - int exitCode=-1; + int exitCode = -1; try { process = processBuilder.start(); } catch (IOException e) { M.msgDownloadError("Failed to start download process for \"" + filename + "\""); return; } catch (Exception e) { - String msg = e.getMessage() !=null ? e.getMessage():""; + String msg = e.getMessage() != null ? e.getMessage() : ""; String[] messageArray = msg.split(","); if (messageArray.length >= 1 && messageArray[0].toLowerCase().trim().replaceAll(" ", "").contains("cannotrunprogram")) { // If yt-dlp program is not marked as executable M.msgDownloadError(DRIFTY_COMPONENT_NOT_EXECUTABLE_ERROR); From 6a4cc908bedfd98cdf8ad6319ddb782469cba712 Mon Sep 17 00:00:00 2001 From: siddu017 Date: Wed, 30 Jul 2025 23:58:44 +0530 Subject: [PATCH 4/7] commmented out the linter.yml repo name and solved the extraspacing Signed-off-by: siddu017 --- GUI/src/main/java/backend/FileDownloader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GUI/src/main/java/backend/FileDownloader.java b/GUI/src/main/java/backend/FileDownloader.java index 44e41564d..197c712c8 100644 --- a/GUI/src/main/java/backend/FileDownloader.java +++ b/GUI/src/main/java/backend/FileDownloader.java @@ -112,7 +112,7 @@ protected Integer call() { } updateProgress(0.0, 1.0); done = true; - return exitCode; + return exitCode; } private void downloadYoutubeOrInstagram(boolean isSpotifySong) { From 913b70932fc5e0bd9d97926d7e6b5af279fd432b Mon Sep 17 00:00:00 2001 From: siddu017 Date: Thu, 31 Jul 2025 00:12:12 +0530 Subject: [PATCH 5/7] Fix: added null check in FileDownloader Signed-off-by: siddu017 --- GUI/src/main/java/backend/FileDownloader.java | 1 + 1 file changed, 1 insertion(+) diff --git a/GUI/src/main/java/backend/FileDownloader.java b/GUI/src/main/java/backend/FileDownloader.java index 197c712c8..0eddf90ea 100644 --- a/GUI/src/main/java/backend/FileDownloader.java +++ b/GUI/src/main/java/backend/FileDownloader.java @@ -113,6 +113,7 @@ protected Integer call() { updateProgress(0.0, 1.0); done = true; return exitCode; + //no extra space } private void downloadYoutubeOrInstagram(boolean isSpotifySong) { From 5c33896bb77bdf463129360029033f5363e9bee8 Mon Sep 17 00:00:00 2001 From: siddu017 Date: Thu, 31 Jul 2025 20:36:55 +0530 Subject: [PATCH 6/7] removed comment line and removed the exitcode line Signed-off-by: siddu017 --- GUI/src/main/java/backend/FileDownloader.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/GUI/src/main/java/backend/FileDownloader.java b/GUI/src/main/java/backend/FileDownloader.java index 0eddf90ea..c2c797a7b 100644 --- a/GUI/src/main/java/backend/FileDownloader.java +++ b/GUI/src/main/java/backend/FileDownloader.java @@ -113,7 +113,6 @@ protected Integer call() { updateProgress(0.0, 1.0); done = true; return exitCode; - //no extra space } private void downloadYoutubeOrInstagram(boolean isSpotifySong) { @@ -121,7 +120,6 @@ private void downloadYoutubeOrInstagram(boolean isSpotifySong) { ProcessBuilder processBuilder = new ProcessBuilder(fullCommand); sendInfoMessage(String.format(DOWNLOADING_F, filename)); Process process = null; - int exitCode = -1; try { process = processBuilder.start(); } catch (IOException e) { From 007f240dbb832156b740358d7ac690cac6151773 Mon Sep 17 00:00:00 2001 From: siddu017 Date: Thu, 31 Jul 2025 20:44:31 +0530 Subject: [PATCH 7/7] removed comment line and removed the exitcode line and removed desktop.ini file Signed-off-by: siddu017 --- desktop.ini | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 desktop.ini diff --git a/desktop.ini b/desktop.ini deleted file mode 100644 index ae015df75..000000000 --- a/desktop.ini +++ /dev/null @@ -1,2 +0,0 @@ -[.ShellClassInfo] -LocalizedResourceName=@Drifty,0