diff --git a/quickfixj-core/src/main/java/quickfix/Session.java b/quickfixj-core/src/main/java/quickfix/Session.java index b8d71efb9c..85f13a304b 100644 --- a/quickfixj-core/src/main/java/quickfix/Session.java +++ b/quickfixj-core/src/main/java/quickfix/Session.java @@ -1986,11 +1986,12 @@ public void disconnect(String reason, boolean logError) throws IOException { stateListener.onLogout(); } + } finally { // QFJ-457 now enabled again if acceptor if (!state.isInitiator()) { setEnabled(true); } - } finally { + state.setLogonReceived(false); state.setLogonSent(false); state.setLogoutSent(false); diff --git a/quickfixj-core/src/test/java/quickfix/mina/SessionConnectorTest.java b/quickfixj-core/src/test/java/quickfix/mina/SessionConnectorTest.java index 1d86e63602..5dd0dead02 100644 --- a/quickfixj-core/src/test/java/quickfix/mina/SessionConnectorTest.java +++ b/quickfixj-core/src/test/java/quickfix/mina/SessionConnectorTest.java @@ -79,7 +79,8 @@ public void testConnector() throws Exception { assertTrue(session.isEnabled()); connector.logoutAllSessions(true); - assertFalse(session.isEnabled()); + // Acceptors should get re-enabled after Logout + assertTrue(session.isEnabled()); assertEquals(9999, connector.getIntSetting(Acceptor.SETTING_SOCKET_ACCEPT_PORT));