mirror of
https://github.com/moparisthebest/davmail
synced 2025-02-28 09:21:49 -05:00
Make all threads daemon and remove System.exit calls
git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@566 3d1905a2-6b24-0410-a738-b14d5a86fcbd
This commit is contained in:
parent
dc82440cc0
commit
a08ebb6732
@ -33,6 +33,7 @@ public class AbstractConnection extends Thread {
|
|||||||
public AbstractConnection(String name, Socket clientSocket) {
|
public AbstractConnection(String name, Socket clientSocket) {
|
||||||
super(name);
|
super(name);
|
||||||
this.client = clientSocket;
|
this.client = clientSocket;
|
||||||
|
setDaemon(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize the streams and set thread name
|
// Initialize the streams and set thread name
|
||||||
|
@ -42,6 +42,7 @@ public abstract class AbstractServer extends Thread {
|
|||||||
*/
|
*/
|
||||||
public AbstractServer(String name, int port, int defaultPort) {
|
public AbstractServer(String name, int port, int defaultPort) {
|
||||||
super(name);
|
super(name);
|
||||||
|
setDaemon(true);
|
||||||
if (port == 0) {
|
if (port == 0) {
|
||||||
this.port = defaultPort;
|
this.port = defaultPort;
|
||||||
} else {
|
} else {
|
||||||
|
@ -306,7 +306,7 @@ public final class DavGatewayHttpClientFacade {
|
|||||||
if (multiThreadedHttpConnectionManager == null) {
|
if (multiThreadedHttpConnectionManager == null) {
|
||||||
multiThreadedHttpConnectionManager = new MultiThreadedHttpConnectionManager();
|
multiThreadedHttpConnectionManager = new MultiThreadedHttpConnectionManager();
|
||||||
multiThreadedHttpConnectionManager.getParams().setDefaultMaxConnectionsPerHost(100);
|
multiThreadedHttpConnectionManager.getParams().setDefaultMaxConnectionsPerHost(100);
|
||||||
httpConnectionManagerThread = new Thread(HttpConnectionManager.class.getName()) {
|
httpConnectionManagerThread = new Thread(HttpConnectionManager.class.getSimpleName()) {
|
||||||
@Override public void run() {
|
@Override public void run() {
|
||||||
boolean terminated = false;
|
boolean terminated = false;
|
||||||
while (!terminated) {
|
while (!terminated) {
|
||||||
@ -321,6 +321,7 @@ public final class DavGatewayHttpClientFacade {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
httpConnectionManagerThread.setDaemon(true);
|
||||||
httpConnectionManagerThread.start();
|
httpConnectionManagerThread.start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package davmail.ui.tray;
|
|||||||
|
|
||||||
import davmail.Settings;
|
import davmail.Settings;
|
||||||
import davmail.BundleMessage;
|
import davmail.BundleMessage;
|
||||||
|
import davmail.DavGateway;
|
||||||
import davmail.ui.AboutFrame;
|
import davmail.ui.AboutFrame;
|
||||||
import davmail.ui.SettingsFrame;
|
import davmail.ui.SettingsFrame;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
@ -33,6 +34,7 @@ public class AwtGatewayTray implements DavGatewayTrayInterface {
|
|||||||
private static Image image;
|
private static Image image;
|
||||||
private static Image image2;
|
private static Image image2;
|
||||||
private static Image inactiveImage;
|
private static Image inactiveImage;
|
||||||
|
protected static LogBrokerMonitor logBrokerMonitor;
|
||||||
private boolean isActive = true;
|
private boolean isActive = true;
|
||||||
|
|
||||||
public Image getFrameIcon() {
|
public Image getFrameIcon() {
|
||||||
@ -168,11 +170,13 @@ public class AwtGatewayTray implements DavGatewayTrayInterface {
|
|||||||
Logger rootLogger = Logger.getRootLogger();
|
Logger rootLogger = Logger.getRootLogger();
|
||||||
LF5Appender lf5Appender = (LF5Appender) rootLogger.getAppender("LF5Appender");
|
LF5Appender lf5Appender = (LF5Appender) rootLogger.getAppender("LF5Appender");
|
||||||
if (lf5Appender == null) {
|
if (lf5Appender == null) {
|
||||||
lf5Appender = new LF5Appender(new LogBrokerMonitor(LogLevel.getLog4JLevels()) {
|
logBrokerMonitor = new LogBrokerMonitor(LogLevel.getLog4JLevels()) {
|
||||||
@Override protected void closeAfterConfirm() {
|
@Override
|
||||||
|
protected void closeAfterConfirm() {
|
||||||
hide();
|
hide();
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
lf5Appender = new LF5Appender(logBrokerMonitor);
|
||||||
lf5Appender.setName("LF5Appender");
|
lf5Appender.setName("LF5Appender");
|
||||||
rootLogger.addAppender(lf5Appender);
|
rootLogger.addAppender(lf5Appender);
|
||||||
}
|
}
|
||||||
@ -184,9 +188,15 @@ public class AwtGatewayTray implements DavGatewayTrayInterface {
|
|||||||
// create an action exitListener to listen for exit action executed on the tray icon
|
// create an action exitListener to listen for exit action executed on the tray icon
|
||||||
ActionListener exitListener = new ActionListener() {
|
ActionListener exitListener = new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
DavGateway.stop();
|
||||||
SystemTray.getSystemTray().remove(trayIcon);
|
SystemTray.getSystemTray().remove(trayIcon);
|
||||||
//noinspection CallToSystemExit
|
|
||||||
System.exit(0);
|
// dispose frames
|
||||||
|
settingsFrame.dispose();
|
||||||
|
aboutFrame.dispose();
|
||||||
|
if (logBrokerMonitor != null) {
|
||||||
|
logBrokerMonitor.dispose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// create menu item for the exit action
|
// create menu item for the exit action
|
||||||
|
@ -2,6 +2,7 @@ package davmail.ui.tray;
|
|||||||
|
|
||||||
import davmail.Settings;
|
import davmail.Settings;
|
||||||
import davmail.BundleMessage;
|
import davmail.BundleMessage;
|
||||||
|
import davmail.DavGateway;
|
||||||
import davmail.ui.AboutFrame;
|
import davmail.ui.AboutFrame;
|
||||||
import davmail.ui.SettingsFrame;
|
import davmail.ui.SettingsFrame;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
@ -25,6 +26,7 @@ public class FrameGatewayTray implements DavGatewayTrayInterface {
|
|||||||
protected static JFrame mainFrame;
|
protected static JFrame mainFrame;
|
||||||
protected static AboutFrame aboutFrame;
|
protected static AboutFrame aboutFrame;
|
||||||
protected static SettingsFrame settingsFrame;
|
protected static SettingsFrame settingsFrame;
|
||||||
|
protected static LogBrokerMonitor logBrokerMonitor;
|
||||||
private static JEditorPane errorArea;
|
private static JEditorPane errorArea;
|
||||||
private static JLabel errorLabel;
|
private static JLabel errorLabel;
|
||||||
private static JEditorPane messageArea;
|
private static JEditorPane messageArea;
|
||||||
@ -113,12 +115,13 @@ public class FrameGatewayTray implements DavGatewayTrayInterface {
|
|||||||
Logger rootLogger = Logger.getRootLogger();
|
Logger rootLogger = Logger.getRootLogger();
|
||||||
LF5Appender lf5Appender = (LF5Appender) rootLogger.getAppender("LF5Appender");
|
LF5Appender lf5Appender = (LF5Appender) rootLogger.getAppender("LF5Appender");
|
||||||
if (lf5Appender == null) {
|
if (lf5Appender == null) {
|
||||||
lf5Appender = new LF5Appender(new LogBrokerMonitor(LogLevel.getLog4JLevels()) {
|
logBrokerMonitor = new LogBrokerMonitor(LogLevel.getLog4JLevels()) {
|
||||||
@Override
|
@Override
|
||||||
protected void closeAfterConfirm() {
|
protected void closeAfterConfirm() {
|
||||||
hide();
|
hide();
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
lf5Appender = new LF5Appender(logBrokerMonitor);
|
||||||
lf5Appender.setName("LF5Appender");
|
lf5Appender.setName("LF5Appender");
|
||||||
rootLogger.addAppender(lf5Appender);
|
rootLogger.addAppender(lf5Appender);
|
||||||
}
|
}
|
||||||
@ -174,8 +177,13 @@ public class FrameGatewayTray implements DavGatewayTrayInterface {
|
|||||||
// create an action exitListener to listen for exit action executed on the tray icon
|
// create an action exitListener to listen for exit action executed on the tray icon
|
||||||
ActionListener exitListener = new ActionListener() {
|
ActionListener exitListener = new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
//noinspection CallToSystemExit
|
DavGateway.stop();
|
||||||
System.exit(0);
|
// dispose frames
|
||||||
|
settingsFrame.dispose();
|
||||||
|
aboutFrame.dispose();
|
||||||
|
if (logBrokerMonitor != null) {
|
||||||
|
logBrokerMonitor.dispose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// create menu item for the exit action
|
// create menu item for the exit action
|
||||||
|
@ -2,6 +2,7 @@ package davmail.ui.tray;
|
|||||||
|
|
||||||
import davmail.ui.OSXAdapter;
|
import davmail.ui.OSXAdapter;
|
||||||
import davmail.BundleMessage;
|
import davmail.BundleMessage;
|
||||||
|
import davmail.DavGateway;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extended Awt tray with OSX extensions.
|
* Extended Awt tray with OSX extensions.
|
||||||
@ -9,6 +10,13 @@ import davmail.BundleMessage;
|
|||||||
public class OSXAwtGatewayTray extends AwtGatewayTray {
|
public class OSXAwtGatewayTray extends AwtGatewayTray {
|
||||||
@SuppressWarnings({"SameReturnValue"})
|
@SuppressWarnings({"SameReturnValue"})
|
||||||
public boolean quit() {
|
public boolean quit() {
|
||||||
|
DavGateway.stop();
|
||||||
|
// dispose frames
|
||||||
|
settingsFrame.dispose();
|
||||||
|
aboutFrame.dispose();
|
||||||
|
if (logBrokerMonitor != null) {
|
||||||
|
logBrokerMonitor.dispose();
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ package davmail.ui.tray;
|
|||||||
|
|
||||||
import davmail.ui.OSXAdapter;
|
import davmail.ui.OSXAdapter;
|
||||||
import davmail.BundleMessage;
|
import davmail.BundleMessage;
|
||||||
|
import davmail.DavGateway;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
@ -14,6 +15,13 @@ public class OSXFrameGatewayTray extends FrameGatewayTray {
|
|||||||
|
|
||||||
@SuppressWarnings({"SameReturnValue"})
|
@SuppressWarnings({"SameReturnValue"})
|
||||||
public boolean quit() {
|
public boolean quit() {
|
||||||
|
DavGateway.stop();
|
||||||
|
// dispose frames
|
||||||
|
settingsFrame.dispose();
|
||||||
|
aboutFrame.dispose();
|
||||||
|
if (logBrokerMonitor != null) {
|
||||||
|
logBrokerMonitor.dispose();
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ package davmail.ui.tray;
|
|||||||
|
|
||||||
import davmail.Settings;
|
import davmail.Settings;
|
||||||
import davmail.BundleMessage;
|
import davmail.BundleMessage;
|
||||||
|
import davmail.DavGateway;
|
||||||
import davmail.ui.AboutFrame;
|
import davmail.ui.AboutFrame;
|
||||||
import davmail.ui.SettingsFrame;
|
import davmail.ui.SettingsFrame;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
@ -31,6 +32,7 @@ public class SwtGatewayTray implements DavGatewayTrayInterface {
|
|||||||
private static Image inactiveImage;
|
private static Image inactiveImage;
|
||||||
private static Display display;
|
private static Display display;
|
||||||
private static Shell shell;
|
private static Shell shell;
|
||||||
|
private static LogBrokerMonitor logBrokerMonitor;
|
||||||
private boolean isActive = true;
|
private boolean isActive = true;
|
||||||
private boolean isReady;
|
private boolean isReady;
|
||||||
|
|
||||||
@ -221,12 +223,13 @@ public class SwtGatewayTray implements DavGatewayTrayInterface {
|
|||||||
Logger rootLogger = Logger.getRootLogger();
|
Logger rootLogger = Logger.getRootLogger();
|
||||||
LF5Appender lf5Appender = (LF5Appender) rootLogger.getAppender("LF5Appender");
|
LF5Appender lf5Appender = (LF5Appender) rootLogger.getAppender("LF5Appender");
|
||||||
if (lf5Appender == null) {
|
if (lf5Appender == null) {
|
||||||
lf5Appender = new LF5Appender(new LogBrokerMonitor(LogLevel.getLog4JLevels()) {
|
logBrokerMonitor = new LogBrokerMonitor(LogLevel.getLog4JLevels()) {
|
||||||
@Override
|
@Override
|
||||||
protected void closeAfterConfirm() {
|
protected void closeAfterConfirm() {
|
||||||
hide();
|
hide();
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
lf5Appender = new LF5Appender(logBrokerMonitor);
|
||||||
lf5Appender.setName("LF5Appender");
|
lf5Appender.setName("LF5Appender");
|
||||||
rootLogger.addAppender(lf5Appender);
|
rootLogger.addAppender(lf5Appender);
|
||||||
}
|
}
|
||||||
@ -240,18 +243,8 @@ public class SwtGatewayTray implements DavGatewayTrayInterface {
|
|||||||
exitItem.setText(BundleMessage.format("UI_EXIT"));
|
exitItem.setText(BundleMessage.format("UI_EXIT"));
|
||||||
exitItem.addListener(SWT.Selection, new Listener() {
|
exitItem.addListener(SWT.Selection, new Listener() {
|
||||||
public void handleEvent(Event event) {
|
public void handleEvent(Event event) {
|
||||||
|
DavGateway.stop();
|
||||||
shell.dispose();
|
shell.dispose();
|
||||||
|
|
||||||
if (image != null) {
|
|
||||||
image.dispose();
|
|
||||||
}
|
|
||||||
if (image2 != null) {
|
|
||||||
image2.dispose();
|
|
||||||
}
|
|
||||||
display.dispose();
|
|
||||||
|
|
||||||
//noinspection CallToSystemExit
|
|
||||||
System.exit(0);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -271,6 +264,10 @@ public class SwtGatewayTray implements DavGatewayTrayInterface {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (trayItem != null) {
|
||||||
|
trayItem.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
if (image != null) {
|
if (image != null) {
|
||||||
image.dispose();
|
image.dispose();
|
||||||
}
|
}
|
||||||
@ -278,6 +275,12 @@ public class SwtGatewayTray implements DavGatewayTrayInterface {
|
|||||||
image2.dispose();
|
image2.dispose();
|
||||||
}
|
}
|
||||||
display.dispose();
|
display.dispose();
|
||||||
|
// dispose AWT frames
|
||||||
|
settingsFrame.dispose();
|
||||||
|
aboutFrame.dispose();
|
||||||
|
if (logBrokerMonitor != null) {
|
||||||
|
logBrokerMonitor.dispose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.start();
|
}.start();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user