diff --git a/spring-integration-ftp/src/main/java/org/springframework/integration/ftp/session/FtpSession.java b/spring-integration-ftp/src/main/java/org/springframework/integration/ftp/session/FtpSession.java index b862d217d0..6f09a6fda7 100644 --- a/spring-integration-ftp/src/main/java/org/springframework/integration/ftp/session/FtpSession.java +++ b/spring-integration-ftp/src/main/java/org/springframework/integration/ftp/session/FtpSession.java @@ -153,6 +153,7 @@ public class FtpSession implements Session { } } } + this.client.logout(); this.client.disconnect(); } catch (Exception e) { @@ -196,7 +197,6 @@ public class FtpSession implements Session { return this.client.removeDirectory(directory); } - @Override public boolean exists(String path) throws IOException { Assert.hasText(path, "'path' must not be empty"); diff --git a/spring-integration-ftp/src/test/java/org/springframework/integration/ftp/session/SessionFactoryTests.java b/spring-integration-ftp/src/test/java/org/springframework/integration/ftp/session/SessionFactoryTests.java index a1016d55f7..e1912e4b03 100644 --- a/spring-integration-ftp/src/test/java/org/springframework/integration/ftp/session/SessionFactoryTests.java +++ b/spring-integration-ftp/src/test/java/org/springframework/integration/ftp/session/SessionFactoryTests.java @@ -45,6 +45,7 @@ import org.springframework.integration.util.PoolItemNotAvailableException; * @author Oleg Zhurakousky * @author Gunnar Hillert * @author Gary Russell + * @author Artem Bilan * */ @SuppressWarnings({"rawtypes", "unchecked"}) @@ -52,7 +53,7 @@ public class SessionFactoryTests { @Test - public void testTimeouts() throws Exception { + public void testFtpClientInteraction() throws Exception { final FTPClient client = mock(FTPClient.class); DefaultFtpSessionFactory sessionFactory = new DefaultFtpSessionFactory() { @@ -67,10 +68,15 @@ public class SessionFactoryTests { sessionFactory.setDataTimeout(789); doReturn(200).when(client).getReplyCode(); doReturn(true).when(client).login("foo", null); - sessionFactory.getSession(); + FtpSession session = sessionFactory.getSession(); verify(client).setConnectTimeout(123); verify(client).setDefaultTimeout(456); verify(client).setDataTimeout(789); + + session.close(); + + verify(client).logout(); + verify(client).disconnect(); } @Test