From commits-return-51821-archive-asf-public=cust-asf.ponee.io@activemq.apache.org Fri Jun 15 16:42:38 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id 46AAE180636 for ; Fri, 15 Jun 2018 16:42:38 +0200 (CEST) Received: (qmail 32459 invoked by uid 500); 15 Jun 2018 14:42:37 -0000 Mailing-List: contact commits-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list commits@activemq.apache.org Received: (qmail 32450 invoked by uid 99); 15 Jun 2018 14:42:37 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 Jun 2018 14:42:37 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 27E42E1132; Fri, 15 Jun 2018 14:42:37 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: clebertsuconic@apache.org To: commits@activemq.apache.org Date: Fri, 15 Jun 2018 14:42:37 -0000 Message-Id: <41d0a6f4b70b4c1b94975f6795b43721@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [1/3] activemq-artemis git commit: ARTEMIS-1935: Close of openwire connection should closes all open sessions Repository: activemq-artemis Updated Branches: refs/heads/master f52fefb42 -> 13954d350 ARTEMIS-1935: Close of openwire connection should closes all open sessions This is my ammending to the last commit I'm adding some extra verifications to the test and I fixed a leak that already existed on the previous map Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/b360fa60 Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/b360fa60 Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/b360fa60 Branch: refs/heads/master Commit: b360fa6063b4060ad91a478d3b46dba557d9a72b Parents: 3987115 Author: Clebert Suconic Authored: Fri Jun 15 10:32:39 2018 -0400 Committer: Clebert Suconic Committed: Fri Jun 15 10:33:55 2018 -0400 ---------------------------------------------------------------------- .../protocol/openwire/OpenWireConnection.java | 1 + .../openwire/SessionHandlingOpenWireTest.java | 22 ++++++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b360fa60/artemis-protocols/artemis-openwire-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/openwire/OpenWireConnection.java ---------------------------------------------------------------------- diff --git a/artemis-protocols/artemis-openwire-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/openwire/OpenWireConnection.java b/artemis-protocols/artemis-openwire-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/openwire/OpenWireConnection.java index bafce92..b5adf34 100644 --- a/artemis-protocols/artemis-openwire-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/openwire/OpenWireConnection.java +++ b/artemis-protocols/artemis-openwire-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/openwire/OpenWireConnection.java @@ -1013,6 +1013,7 @@ public class OpenWireConnection extends AbstractRemotingConnection implements Se public void removeSession(AMQConnectionContext context, SessionInfo info) throws Exception { AMQSession session = sessions.remove(info.getSessionId()); if (session != null) { + sessionIdMap.remove(session.getCoreSession().getName()); session.close(); } } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b360fa60/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/openwire/SessionHandlingOpenWireTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/openwire/SessionHandlingOpenWireTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/openwire/SessionHandlingOpenWireTest.java index 989b62d..c43d5f7 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/openwire/SessionHandlingOpenWireTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/openwire/SessionHandlingOpenWireTest.java @@ -61,12 +61,22 @@ public class SessionHandlingOpenWireTest extends BasicOpenWireTest { public void testInternalSessionHandlingNoSessionClose() throws Exception { try (Connection conn = factory.createConnection()) { conn.start(); - Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); - Destination dest = createDestination(session,ActiveMQDestination.QUEUE_TYPE); - sendMessages(session, dest, 1); - MessageConsumer consumer = session.createConsumer(dest); - Message m = consumer.receive(2000); - assertNotNull(m); + for (int i = 0; i < 100; i++) { + Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); + Destination dest = createDestination(session,ActiveMQDestination.QUEUE_TYPE); + sendMessages(session, dest, 1); + MessageConsumer consumer = session.createConsumer(dest); + Message m = consumer.receive(2000); + consumer.close(); + assertNotNull(m); + + if (i % 2 == 1) { + // it will close only half of the sessions + // just to introduce error conditions + session.close(); + } + + } } assertFalse(AssertionLoggerHandler.findText("Client connection failed, clearing up resources for session")); assertFalse(AssertionLoggerHandler.findText("Cleared up resources for session"));