diff --git a/addonInter/src/main/java/edu/regis/universeplayer/addon/Main.java b/addonInter/src/main/java/edu/regis/universeplayer/addon/Main.java
index f24e8a3..a014d55 100644
--- a/addonInter/src/main/java/edu/regis/universeplayer/addon/Main.java
+++ b/addonInter/src/main/java/edu/regis/universeplayer/addon/Main.java
@@ -19,12 +19,12 @@ public class Main
{
private static final Logger logger = LoggerFactory.getLogger(Main.class);
- public static void main(String[] args) throws IOException, InterruptedException
+ public static void main(String[] args) throws IOException
{
MessageHandler interfaceLink;
BrowserLink browserLink;
Thread interfaceThread, browserThread;
- Socket socket;
+ Socket socket = null;
try
{
logger.debug("Connecting to browser");
@@ -34,18 +34,38 @@ public class Main
logger.debug("Setting up connection");
socket = new Socket(BrowserConstants.IP,BrowserConstants.PORT);
logger.debug("Connection established");
-
- interfaceLink = new MessageHandler("InterfaceHandler", socket.getInputStream(), socket.getOutputStream()) {
+
+ Socket finalSocket = socket;
+ interfaceLink = new MessageHandler("InterfaceHandler", finalSocket.getInputStream(), finalSocket.getOutputStream()) {
@Override
protected boolean onRun()
{
- if (!socket.isConnected() || socket.isClosed() || socket.isInputShutdown() || socket.isOutputShutdown())
+ if (!finalSocket.isConnected() || finalSocket.isClosed() || finalSocket.isInputShutdown() || finalSocket.isOutputShutdown())
{
- logger.debug("Socket closed, shutting down");
+ logger.debug("Interface socket closed, shutting down");
return true;
}
+ /**
+ * Make sure that it is active.
+ */
+ this.sendUpdate("ping");
return false;
}
+
+ @Override
+ protected void onClose()
+ {
+ try
+ {
+ logger.debug("Closing interface socket.");
+ finalSocket.close();
+ browserLink.sendObject("quit");
+ }
+ catch (IOException e)
+ {
+ logger.error("Could not close socket", e);
+ }
+ }
};
logger.debug("Connection received");
/*
@@ -70,14 +90,28 @@ public class Main
browserThread.start();
interfaceThread.start();
logger.debug("Joining threads.");
- browserThread.join();
- interfaceThread.join();
+ try
+ {
+ browserThread.join();
+ interfaceThread.join();
+ }
+ catch (InterruptedException e)
+ {
+ logger.error("Could not wait for threads", e);
+ }
logger.debug("Threads completed.");
}
catch (IOException e)
{
logger.error("Could not initialize socket", e);
- browserLink.sendObject("quit");
+ try
+ {
+ browserLink.sendObject("quit");
+ }
+ catch (IOException ex)
+ {
+ logger.error("Could not quit socket", ex);
+ }
throw e;
}
}
@@ -89,6 +123,17 @@ public class Main
finally
{
logger.debug("Shutting down interface link");
+ if (socket != null)
+ {
+ try
+ {
+ socket.close();
+ }
+ catch (IOException e)
+ {
+ logger.error("Could not close socket", e);
+ }
+ }
}
}
diff --git a/addonInter/src/main/resources/log4j2.xml b/addonInter/src/main/resources/log4j2.xml
index 3e4c214..30479a2 100644
--- a/addonInter/src/main/resources/log4j2.xml
+++ b/addonInter/src/main/resources/log4j2.xml
@@ -17,10 +17,5 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/browserCommands/src/main/java/edu/regis/universeplayer/browserCommands/MessageHandler.java b/browserCommands/src/main/java/edu/regis/universeplayer/browserCommands/MessageHandler.java
index 02ad1ff..5b79439 100644
--- a/browserCommands/src/main/java/edu/regis/universeplayer/browserCommands/MessageHandler.java
+++ b/browserCommands/src/main/java/edu/regis/universeplayer/browserCommands/MessageHandler.java
@@ -76,13 +76,14 @@ public class MessageHandler implements Runnable, MessageSerializer
Future