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) {
|
||||
super(name);
|
||||
this.client = clientSocket;
|
||||
setDaemon(true);
|
||||
}
|
||||
|
||||
// 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) {
|
||||
super(name);
|
||||
setDaemon(true);
|
||||
if (port == 0) {
|
||||
this.port = defaultPort;
|
||||
} else {
|
||||
|
@ -306,7 +306,7 @@ public final class DavGatewayHttpClientFacade {
|
||||
if (multiThreadedHttpConnectionManager == null) {
|
||||
multiThreadedHttpConnectionManager = new MultiThreadedHttpConnectionManager();
|
||||
multiThreadedHttpConnectionManager.getParams().setDefaultMaxConnectionsPerHost(100);
|
||||
httpConnectionManagerThread = new Thread(HttpConnectionManager.class.getName()) {
|
||||
httpConnectionManagerThread = new Thread(HttpConnectionManager.class.getSimpleName()) {
|
||||
@Override public void run() {
|
||||
boolean terminated = false;
|
||||
while (!terminated) {
|
||||
@ -321,6 +321,7 @@ public final class DavGatewayHttpClientFacade {
|
||||
}
|
||||
}
|
||||
};
|
||||
httpConnectionManagerThread.setDaemon(true);
|
||||
httpConnectionManagerThread.start();
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package davmail.ui.tray;
|
||||
|
||||
import davmail.Settings;
|
||||
import davmail.BundleMessage;
|
||||
import davmail.DavGateway;
|
||||
import davmail.ui.AboutFrame;
|
||||
import davmail.ui.SettingsFrame;
|
||||
import org.apache.log4j.Logger;
|
||||
@ -33,6 +34,7 @@ public class AwtGatewayTray implements DavGatewayTrayInterface {
|
||||
private static Image image;
|
||||
private static Image image2;
|
||||
private static Image inactiveImage;
|
||||
protected static LogBrokerMonitor logBrokerMonitor;
|
||||
private boolean isActive = true;
|
||||
|
||||
public Image getFrameIcon() {
|
||||
@ -168,11 +170,13 @@ public class AwtGatewayTray implements DavGatewayTrayInterface {
|
||||
Logger rootLogger = Logger.getRootLogger();
|
||||
LF5Appender lf5Appender = (LF5Appender) rootLogger.getAppender("LF5Appender");
|
||||
if (lf5Appender == null) {
|
||||
lf5Appender = new LF5Appender(new LogBrokerMonitor(LogLevel.getLog4JLevels()) {
|
||||
@Override protected void closeAfterConfirm() {
|
||||
logBrokerMonitor = new LogBrokerMonitor(LogLevel.getLog4JLevels()) {
|
||||
@Override
|
||||
protected void closeAfterConfirm() {
|
||||
hide();
|
||||
}
|
||||
});
|
||||
};
|
||||
lf5Appender = new LF5Appender(logBrokerMonitor);
|
||||
lf5Appender.setName("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
|
||||
ActionListener exitListener = new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
DavGateway.stop();
|
||||
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
|
||||
|
@ -2,6 +2,7 @@ package davmail.ui.tray;
|
||||
|
||||
import davmail.Settings;
|
||||
import davmail.BundleMessage;
|
||||
import davmail.DavGateway;
|
||||
import davmail.ui.AboutFrame;
|
||||
import davmail.ui.SettingsFrame;
|
||||
import org.apache.log4j.Logger;
|
||||
@ -25,6 +26,7 @@ public class FrameGatewayTray implements DavGatewayTrayInterface {
|
||||
protected static JFrame mainFrame;
|
||||
protected static AboutFrame aboutFrame;
|
||||
protected static SettingsFrame settingsFrame;
|
||||
protected static LogBrokerMonitor logBrokerMonitor;
|
||||
private static JEditorPane errorArea;
|
||||
private static JLabel errorLabel;
|
||||
private static JEditorPane messageArea;
|
||||
@ -113,12 +115,13 @@ public class FrameGatewayTray implements DavGatewayTrayInterface {
|
||||
Logger rootLogger = Logger.getRootLogger();
|
||||
LF5Appender lf5Appender = (LF5Appender) rootLogger.getAppender("LF5Appender");
|
||||
if (lf5Appender == null) {
|
||||
lf5Appender = new LF5Appender(new LogBrokerMonitor(LogLevel.getLog4JLevels()) {
|
||||
logBrokerMonitor = new LogBrokerMonitor(LogLevel.getLog4JLevels()) {
|
||||
@Override
|
||||
protected void closeAfterConfirm() {
|
||||
hide();
|
||||
}
|
||||
});
|
||||
};
|
||||
lf5Appender = new LF5Appender(logBrokerMonitor);
|
||||
lf5Appender.setName("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
|
||||
ActionListener exitListener = new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
//noinspection CallToSystemExit
|
||||
System.exit(0);
|
||||
DavGateway.stop();
|
||||
// dispose frames
|
||||
settingsFrame.dispose();
|
||||
aboutFrame.dispose();
|
||||
if (logBrokerMonitor != null) {
|
||||
logBrokerMonitor.dispose();
|
||||
}
|
||||
}
|
||||
};
|
||||
// create menu item for the exit action
|
||||
|
@ -2,6 +2,7 @@ package davmail.ui.tray;
|
||||
|
||||
import davmail.ui.OSXAdapter;
|
||||
import davmail.BundleMessage;
|
||||
import davmail.DavGateway;
|
||||
|
||||
/**
|
||||
* Extended Awt tray with OSX extensions.
|
||||
@ -9,6 +10,13 @@ import davmail.BundleMessage;
|
||||
public class OSXAwtGatewayTray extends AwtGatewayTray {
|
||||
@SuppressWarnings({"SameReturnValue"})
|
||||
public boolean quit() {
|
||||
DavGateway.stop();
|
||||
// dispose frames
|
||||
settingsFrame.dispose();
|
||||
aboutFrame.dispose();
|
||||
if (logBrokerMonitor != null) {
|
||||
logBrokerMonitor.dispose();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@ package davmail.ui.tray;
|
||||
|
||||
import davmail.ui.OSXAdapter;
|
||||
import davmail.BundleMessage;
|
||||
import davmail.DavGateway;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
@ -14,6 +15,13 @@ public class OSXFrameGatewayTray extends FrameGatewayTray {
|
||||
|
||||
@SuppressWarnings({"SameReturnValue"})
|
||||
public boolean quit() {
|
||||
DavGateway.stop();
|
||||
// dispose frames
|
||||
settingsFrame.dispose();
|
||||
aboutFrame.dispose();
|
||||
if (logBrokerMonitor != null) {
|
||||
logBrokerMonitor.dispose();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@ package davmail.ui.tray;
|
||||
|
||||
import davmail.Settings;
|
||||
import davmail.BundleMessage;
|
||||
import davmail.DavGateway;
|
||||
import davmail.ui.AboutFrame;
|
||||
import davmail.ui.SettingsFrame;
|
||||
import org.apache.log4j.Logger;
|
||||
@ -31,6 +32,7 @@ public class SwtGatewayTray implements DavGatewayTrayInterface {
|
||||
private static Image inactiveImage;
|
||||
private static Display display;
|
||||
private static Shell shell;
|
||||
private static LogBrokerMonitor logBrokerMonitor;
|
||||
private boolean isActive = true;
|
||||
private boolean isReady;
|
||||
|
||||
@ -221,12 +223,13 @@ public class SwtGatewayTray implements DavGatewayTrayInterface {
|
||||
Logger rootLogger = Logger.getRootLogger();
|
||||
LF5Appender lf5Appender = (LF5Appender) rootLogger.getAppender("LF5Appender");
|
||||
if (lf5Appender == null) {
|
||||
lf5Appender = new LF5Appender(new LogBrokerMonitor(LogLevel.getLog4JLevels()) {
|
||||
logBrokerMonitor = new LogBrokerMonitor(LogLevel.getLog4JLevels()) {
|
||||
@Override
|
||||
protected void closeAfterConfirm() {
|
||||
hide();
|
||||
}
|
||||
});
|
||||
};
|
||||
lf5Appender = new LF5Appender(logBrokerMonitor);
|
||||
lf5Appender.setName("LF5Appender");
|
||||
rootLogger.addAppender(lf5Appender);
|
||||
}
|
||||
@ -240,18 +243,8 @@ public class SwtGatewayTray implements DavGatewayTrayInterface {
|
||||
exitItem.setText(BundleMessage.format("UI_EXIT"));
|
||||
exitItem.addListener(SWT.Selection, new Listener() {
|
||||
public void handleEvent(Event event) {
|
||||
DavGateway.stop();
|
||||
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) {
|
||||
image.dispose();
|
||||
}
|
||||
@ -278,6 +275,12 @@ public class SwtGatewayTray implements DavGatewayTrayInterface {
|
||||
image2.dispose();
|
||||
}
|
||||
display.dispose();
|
||||
// dispose AWT frames
|
||||
settingsFrame.dispose();
|
||||
aboutFrame.dispose();
|
||||
if (logBrokerMonitor != null) {
|
||||
logBrokerMonitor.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
}.start();
|
||||
|
Loading…
x
Reference in New Issue
Block a user