Fix bug in iterating through sessions
git-svn-id: svn://svn.code.sf.net/p/mockftpserver/code@196 531de8e6-9941-0410-b38b-9a92acbe0330
diff --git a/MockFtpServer/src/main/java/org/mockftpserver/core/server/AbstractFtpServer.java b/MockFtpServer/src/main/java/org/mockftpserver/core/server/AbstractFtpServer.java
index 33635fb..8e1a419 100644
--- a/MockFtpServer/src/main/java/org/mockftpserver/core/server/AbstractFtpServer.java
+++ b/MockFtpServer/src/main/java/org/mockftpserver/core/server/AbstractFtpServer.java
@@ -175,7 +175,7 @@
serverSocket.close();
}
- for (Iterator iter = sessions.keySet().iterator(); iter.hasNext();) {
+ for (Iterator iter = sessions.values().iterator(); iter.hasNext();) {
Session session = (Session) iter.next();
SessionInfo sessionInfo = (SessionInfo) sessions.get(session);
session.close();
@@ -302,7 +302,7 @@
public boolean isShutdown() {
boolean shutdown = !serverThread.isAlive() && serverSocket.isClosed();
- for (Iterator iter = sessions.keySet().iterator(); iter.hasNext();) {
+ for (Iterator iter = sessions.values().iterator(); iter.hasNext();) {
SessionInfo sessionInfo = (SessionInfo) iter.next();
shutdown = shutdown && sessionInfo.socket.isClosed() && !sessionInfo.thread.isAlive();
}
diff --git a/MockFtpServer/src/test/groovy/org/mockftpserver/fake/FakeFtpServerIntegrationTest.groovy b/MockFtpServer/src/test/groovy/org/mockftpserver/fake/FakeFtpServerIntegrationTest.groovy
index 3ba5555..8917d94 100644
--- a/MockFtpServer/src/test/groovy/org/mockftpserver/fake/FakeFtpServerIntegrationTest.groovy
+++ b/MockFtpServer/src/test/groovy/org/mockftpserver/fake/FakeFtpServerIntegrationTest.groovy
@@ -206,6 +206,9 @@
LOG.info("Logging in as $USERNAME/$PASSWORD")
assert ftpClient.login(USERNAME, PASSWORD)
verifyReplyCode("login with $USERNAME/$PASSWORD", 230)
+
+ assertTrue("isStarted", ftpServer.isStarted());
+ assertFalse("isShutdown", ftpServer.isShutdown());
}
void testLogin_WithAccount() {
diff --git a/MockFtpServer/src/test/java/org/mockftpserver/stub/StubFtpServerIntegrationTest.java b/MockFtpServer/src/test/java/org/mockftpserver/stub/StubFtpServerIntegrationTest.java
index 8b73d79..2d188fb 100644
--- a/MockFtpServer/src/test/java/org/mockftpserver/stub/StubFtpServerIntegrationTest.java
+++ b/MockFtpServer/src/test/java/org/mockftpserver/stub/StubFtpServerIntegrationTest.java
@@ -71,6 +71,9 @@
assertTrue("Unable to login with " + userAndPassword, success);
verifyReplyCode("login with " + userAndPassword, 230);
+ assertTrue("isStarted", stubFtpServer.isStarted());
+ assertFalse("isShutdown", stubFtpServer.isShutdown());
+
// Quit
LOG.info("Quit");
ftpClient.quit();