From eb6ff577ae5a7168f7f31d3c59febc3499b5c3a8 Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Thu, 28 Jul 2022 07:02:45 +1000 Subject: [PATCH 1/2] codeql correctly setup maven to not depend on default installation (#8334) * setup Maven via a GHA --- .github/workflows/codeql-analysis.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index ca71a3ce28a1..f228d3fad247 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -66,6 +66,11 @@ jobs: # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs # queries: security-extended,security-and-quality + + - name: Set up Maven + uses: stCarolas/setup-maven@v4 + with: + maven-version: 3.8.6 - name: Clean install dependencies and build run: mvn clean install -DskipTests From 4a6c2744a0d4ff404daee0a521e88ae386356e06 Mon Sep 17 00:00:00 2001 From: Marc Philipp Date: Mon, 25 Jul 2022 09:17:40 +0200 Subject: [PATCH 2/2] Grow request queue instead of pre-allocating it To avoid excess allocation, in particular for higher values of `MaxRequestsQueuedPerDestination`, the per-destination request queue is now initialized with a capacity of 32 entries and configured to grow 32 entries at a time until the maximum is reached. Resolves #8319. --- .../main/java/org/eclipse/jetty/client/HttpDestination.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/jetty-client/src/main/java/org/eclipse/jetty/client/HttpDestination.java b/jetty-client/src/main/java/org/eclipse/jetty/client/HttpDestination.java index 79a6c7048ea6..b27819e68ac0 100644 --- a/jetty-client/src/main/java/org/eclipse/jetty/client/HttpDestination.java +++ b/jetty-client/src/main/java/org/eclipse/jetty/client/HttpDestination.java @@ -132,7 +132,10 @@ protected ConnectionPool newConnectionPool(HttpClient client) protected Queue newExchangeQueue(HttpClient client) { - return new BlockingArrayQueue<>(client.getMaxRequestsQueuedPerDestination()); + int maxCapacity = client.getMaxRequestsQueuedPerDestination(); + if (maxCapacity > 32) + return new BlockingArrayQueue<>(32, 32, maxCapacity); + return new BlockingArrayQueue<>(maxCapacity); } protected ClientConnectionFactory newSslClientConnectionFactory(SslContextFactory.Client sslContextFactory, ClientConnectionFactory connectionFactory)