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();