From f8be50af9df59c693fc65ca13eb710578c790745 Mon Sep 17 00:00:00 2001 From: Markil3 <75867393+Markil3@users.noreply.github.com> Date: Wed, 15 Sep 2021 09:35:16 -0600 Subject: [PATCH] Prevents the browser from locking on shutdown if the browser ran into a startup error. --- .../edu/regis/universeplayer/browser/Browser.java | 9 +++++++++ .../regis/universeplayer/PlayerEnvironment.java | 1 + .../regis/universeplayer/player/BrowserPlayer.java | 14 ++++++++++---- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/browser/src/main/java/edu/regis/universeplayer/browser/Browser.java b/browser/src/main/java/edu/regis/universeplayer/browser/Browser.java index 770b286..fc2af0c 100644 --- a/browser/src/main/java/edu/regis/universeplayer/browser/Browser.java +++ b/browser/src/main/java/edu/regis/universeplayer/browser/Browser.java @@ -69,6 +69,7 @@ public class Browser extends MessageRunner logger.error(scanner.nextLine()); } } + notifyAllInstance(); throw new IOException("Error in browser launch (exit code " + startExit + ")"); } } @@ -157,6 +158,14 @@ public class Browser extends MessageRunner } } + /** + * + */ + public void stop() + { + this.running = false; + } + /** * Utility method for launching a browser instance * diff --git a/interface/src/main/java/edu/regis/universeplayer/PlayerEnvironment.java b/interface/src/main/java/edu/regis/universeplayer/PlayerEnvironment.java index c0b7058..573bce5 100644 --- a/interface/src/main/java/edu/regis/universeplayer/PlayerEnvironment.java +++ b/interface/src/main/java/edu/regis/universeplayer/PlayerEnvironment.java @@ -46,6 +46,7 @@ public class PlayerEnvironment */ public static void main(String[] args) { + logger.info("MAIN FOREVER"); LinkedHashMap ops = new LinkedHashMap<>(); ArrayList params = new ArrayList<>(); parseArgs(args, ops, params); diff --git a/interface/src/main/java/edu/regis/universeplayer/player/BrowserPlayer.java b/interface/src/main/java/edu/regis/universeplayer/player/BrowserPlayer.java index e2b0af9..609ccc1 100644 --- a/interface/src/main/java/edu/regis/universeplayer/player/BrowserPlayer.java +++ b/interface/src/main/java/edu/regis/universeplayer/player/BrowserPlayer.java @@ -33,6 +33,7 @@ public class BrowserPlayer implements Player, UpdateListener .getLogger(BrowserPlayer.class); private final LinkedList listeners = new LinkedList<>(); + private boolean error = false; private InternetSong currentSong; @@ -40,9 +41,9 @@ public class BrowserPlayer implements Player, UpdateListener private Browser getBrowser() { - if (browserRef == null) + if (browserRef == null && !this.error) { - while (Browser.getInstance() == null) + if (Browser.getInstance() == null) { try { @@ -53,8 +54,11 @@ public class BrowserPlayer implements Player, UpdateListener logger.error("Interrupted while waiting for browser to initialize.", e); } } - Browser.getInstance().addUpdateListener(this); - browserRef = Browser.getInstance(); + if (Browser.getInstance() != null) + { + Browser.getInstance().addUpdateListener(this); + browserRef = Browser.getInstance(); + } } return browserRef; } @@ -70,6 +74,8 @@ public class BrowserPlayer implements Player, UpdateListener catch (IOException | InterruptedException e) { logger.error("Could not initialize browser", e); + this.error = true; + Browser.notifyAllInstance(); } }); browserThread.start();