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