[Git][java-team/qpid-proton-j][master] 9 commits: Concatenate ASCII armor blocks in debian/upstream/signing-key.asc
Tony Mancill (@tmancill)
gitlab at salsa.debian.org
Sun Nov 30 22:55:56 GMT 2025
Tony Mancill pushed to branch master at Debian Java Maintainers / qpid-proton-j
Commits:
d2c0385b by tony mancill at 2025-11-30T13:45:15-08:00
Concatenate ASCII armor blocks in debian/upstream/signing-key.asc
- - - - -
4845c1ca by tony mancill at 2025-11-30T13:45:47-08:00
Update debian/watch to version 5
- - - - -
ed90c7d6 by tony mancill at 2025-11-30T13:52:50-08:00
New upstream version 0.34.1
- - - - -
b64fa99a by tony mancill at 2025-11-30T13:52:52-08:00
Update upstream source from tag 'upstream/0.34.1'
Update to upstream version '0.34.1'
with Debian dir 067b4b3cf455d5351717997c905e6a8f4eda3928
- - - - -
b26db204 by tony mancill at 2025-11-30T14:01:51-08:00
Remove Rules-Requires-Root from debian/control
- - - - -
b6a407cf by tony mancill at 2025-11-30T14:01:51-08:00
Bump Standards-Version to 4.7.2
- - - - -
2ba68dc4 by tony mancill at 2025-11-30T14:08:37-08:00
Freshen years in debian/copyright
- - - - -
6b767023 by tony mancill at 2025-11-30T14:08:37-08:00
Refresh patches
- - - - -
6faba4b1 by tony mancill at 2025-11-30T14:08:37-08:00
Prepare changelog for upload
- - - - -
24 changed files:
- .github/workflows/build.yml
- − .travis.yml
- NOTICE
- README.md
- apache-qpid-proton-j/pom.xml
- apache-qpid-proton-j/src/main/assembly/NOTICE
- debian/changelog
- debian/control
- debian/copyright
- debian/patches/omit_examples_from_pom_modules.patch
- debian/upstream/signing-key.asc
- debian/watch
- examples/engine/pom.xml
- examples/reactor/pom.xml
- pom.xml
- proton-j/pom.xml
- proton-j/src/main/java/org/apache/qpid/proton/engine/impl/DeliveryImpl.java
- proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java
- proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportLink.java
- proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportSession.java
- proton-j/src/test/java/org/apache/qpid/proton/engine/impl/DeliveryImplTest.java
- proton-j/src/test/java/org/apache/qpid/proton/engine/impl/TransportImplTest.java
- tests/performance-jmh/pom.xml
- tests/pom.xml
Changes:
=====================================
.github/workflows/build.yml
=====================================
@@ -11,8 +11,8 @@ jobs:
java: [ 8, 11, 17 ]
steps:
- - uses: actions/checkout at v2
- - uses: actions/cache at v2
+ - uses: actions/checkout at v3
+ - uses: actions/cache at v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
@@ -20,7 +20,7 @@ jobs:
${{ runner.os }}-maven-
- name: Install JDK ${{ matrix.java }}
- uses: actions/setup-java at v2
+ uses: actions/setup-java at v3
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
=====================================
.travis.yml deleted
=====================================
@@ -1,12 +0,0 @@
-language: java
-matrix:
- include:
- - os: linux
- jdk: openjdk8
- - os: linux
- jdk: openjdk11
-cache:
- directories:
- - $HOME/.m2
-before_cache:
- - rm -rf $HOME/.m2/repository/org/apache/qpid/*
=====================================
NOTICE
=====================================
@@ -1,5 +1,5 @@
Apache Qpid Proton-J
-Copyright 2012-2022 The Apache Software Foundation
+Copyright 2012-2023 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
=====================================
README.md
=====================================
@@ -1,9 +1,5 @@
# Apache Qpid Proton-J
-[](https://travis-ci.com/github/apache/qpid-proton-j)
-[](https://ci.appveyor.com/project/ApacheSoftwareFoundation/qpid-proton-j/branch/main)
-
-
[Qpid Proton-J](https://qpid.apache.org/proton) is a high-performance, lightweight messaging
library. It can be used in the widest range of messaging applications, including brokers,
clients libraries, routers, bridges, proxies, and more.
=====================================
apache-qpid-proton-j/pom.xml
=====================================
@@ -18,7 +18,7 @@
<parent>
<groupId>org.apache.qpid</groupId>
<artifactId>proton-j-parent</artifactId>
- <version>0.34.0</version>
+ <version>0.34.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
=====================================
apache-qpid-proton-j/src/main/assembly/NOTICE
=====================================
@@ -1,5 +1,5 @@
Apache Qpid Proton-J
-Copyright 2012-2022 The Apache Software Foundation
+Copyright 2012-2023 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
=====================================
debian/changelog
=====================================
@@ -1,3 +1,15 @@
+qpid-proton-j (0.34.1-1) unstable; urgency=medium
+
+ * Team upload.
+ * New upstream version 0.34.1
+ * Concatenate ASCII armor blocks in debian/upstream/signing-key.asc
+ * Update debian/watch to version 5
+ * Bump Standards-Version to 4.7.2
+ * Remove Rules-Requires-Root from debian/control
+ * Freshen years in debian/copyright
+
+ -- tony mancill <tmancill at debian.org> Sun, 30 Nov 2025 13:57:07 -0800
+
qpid-proton-j (0.34.0-2) unstable; urgency=medium
* Team upload.
=====================================
debian/control
=====================================
@@ -11,11 +11,10 @@ Build-Depends-Indep:
libbcpkix-java,
libmaven-bundle-plugin-java (>= 3.5.1),
libmaven-javadoc-plugin-java (>= 3.10.1-2) <!nodoc>,
-Standards-Version: 4.6.2
+Standards-Version: 4.7.2
Vcs-Git: https://salsa.debian.org/java-team/qpid-proton-j.git
Vcs-Browser: https://salsa.debian.org/java-team/qpid-proton-j
Homepage: https://qpid.apache.org/proton
-Rules-Requires-Root: no
Description: Apache Qpid Proton-J
Qpid Proton-J is a high-performance, lightweight messaging library. It
can be used in the widest range of messaging applications, including
=====================================
debian/copyright
=====================================
@@ -4,11 +4,12 @@ Upstream-Contact: https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-proton-j
Source: https://qpid.apache.org/proton
Files: *
-Copyright: 2012-2022, The Apache Software Foundation
+Copyright: 2012-2023, The Apache Software Foundation
License: Apache-2.0
Files: debian/*
-Copyright: 2023, Joseph Nahmias <jello at debian.org>
+Copyright: 2023-2025, Joseph Nahmias <jello at debian.org>
+ 2024-2025, tony mancill <tmancill at debian.org>
License: Apache-2.0
License: Apache-2.0
=====================================
debian/patches/omit_examples_from_pom_modules.patch
=====================================
@@ -8,7 +8,7 @@ Last-Update: 2023-02-22
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/pom.xml
+++ b/pom.xml
-@@ -195,8 +195,6 @@
+@@ -202,8 +202,6 @@
<modules>
<module>proton-j</module>
<module>tests</module>
=====================================
debian/upstream/signing-key.asc
=====================================
@@ -1,438 +1,6 @@
-pub 2048R/18806464 2006-11-14
-uid Rajith Attapattu <rajith at apache.org>
-sig 3 18806464 2006-11-14 Rajith Attapattu <rajith at apache.org>
-uid Rajith Attapattu <rajith77 at gmail.com>
-sig 3 18806464 2006-11-14 Rajith Attapattu <rajith at apache.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.2.1 (GNU/Linux)
-
-mQELBEVaPcABCAC+iLSVxk/TZ2i5Kq4KhdYdBdpXizwRsKdCq9m9DwD20yke0rZL
-067ka5z4gA2prOUUCJ51G/CFhDgngiK0awnhcMgdNZzMQoOIJC044qgRLeg12IvI
-bzdtzK+DknPW3MC5QbmuJiozBPokyhyHR/C+889f2lR8OTjSGagLwjtHf0oEuEn4
-RdTBWWzNZclKe4J6UIbi3VG5kgUmThCm12TmtABmJmXpeNl3wpyYNPxZkU1huKNl
-Pi0Buu1SroWoIlwR8n2DNvDIU8PvzmtrfZoDBMopC1a6lBiZX9tKwZLUDb28AgaB
-XelJ+L+nkaoLjbNgNxGRMT7N99hWXsOcWlUVAAYptCVSYWppdGggQXR0YXBhdHR1
-IDxyYWppdGg3N0BnbWFpbC5jb20+iQE2BBMBAgAgBQJFWj3AAhsDBgsJCAcDAgQV
-AggDBBYCAwECHgECF4AACgkQdt2xaBiAZGS/AQf/fCrR7bLqAhiI9ojuOgTfwzRv
-9Hf3FcNdRCnVzmRFzE4WGHSG7R92xLL8avtiPEdC7p80d3+bf+QKGSJ/Ym4a0JqE
-KeX08brWOtIfQQK7wd7UgCJ3ufWcbQgnHzhgc7oY00FZAmQfv8TF8Uxqpe6dKXep
-4S3RN1c9ygg643ey7u85knAk+rs1OevZ+xl/IsLN6rSnQ1B8uIJUCct8+5YuGxd7
-VHCAgDEri0zf7+CMWxVpOJgcegn9Iy8rfmif8BUs0620xvNRha03of2UQZau0WzB
-MIMkSgOUhSBdsYNYe8TU9SfJGXabB4R6xDimMDbOXs75ypQMoPiEsf9urx7T6rQk
-UmFqaXRoIEF0dGFwYXR0dSA8cmFqaXRoQGFwYWNoZS5vcmc+iQE2BBMBAgAgBQJF
-Wj7qAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQdt2xaBiAZGQEYQf/SocY
-SONVEePlZtFlLmsebZLZ8sn+HZBPepcJf81eK7YdXcca7QSeY3Q6vwshbfZsUOJZ
-fu+6gaD1MnPtBLF4RWjLBW1OOmxLJPtv5bNifjciuhuvRgBA7y3xWenfNgV4FeKk
-qX8ArRYJQVgy7X5Lv3ccbXcaNq6ajT2xDi0krMkn0TtU1vdkDSK56PRzAwWxA/X+
-4MKQZF/6964or2rz91iX2OnylEj38q+F7/dOaasD/EZpjAh8nipqVBVL3Rcy2gFy
-7EkTao4tOSo1JVrHW7lgfEBxKVSrgHyhnSxx3Z773edp2qnjZPAcv0qiEawszhkI
-vIuNSo3oTbrOW9w2tA==
-=FCqB
------END PGP PUBLIC KEY BLOCK-----
-pub 1024D/8004C922 2008-04-01 [expires: 2018-03-30]
-uid Aidan Skinner <aidan at skinner.me.uk>
-sig 3 8004C922 2008-04-01 Aidan Skinner <aidan at skinner.me.uk>
-sub 2048g/A1375A8A 2008-04-01 [expires: 2018-03-30]
-sig 8004C922 2008-04-01 Aidan Skinner <aidan at skinner.me.uk>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.6 (GNU/Linux)
-
-mQGiBEfypHkRBAC0tGJGaJnreJa5eF4KWLxEuPm6zuTrw7V8FRh4Wx7SlSE8XH0O
-08BMAUHWsVDaiAUwGIcnbADpZjPV70ChbRVgasA3p0d5Bf8koRd5clb9cb/+ayg9
-r6sybOEuKLEHL8Va/TCea4ANWWzn2EPUjM6CntipSSTsM4idXo9HtFr8AwCgncYV
-iHncPMTpCc73mbmhpNJrQCsEAJpeZn8Eqy/WvOIxUfsRwM9DI54eu5oEyw1PyDoj
-0Wks5OroPprOaC8wIwI/WWjmNZnGvYsq6ZwEs3EhM5PKRNkOuiu5JwRRDgkaHQaf
-xoxoY6Tn74DT19qGDngf76jLgMCO7/Amqe90rlJNXGwkGHdsA33ItRYcjebtWVIQ
-QgXEA/49akjY/tc4XGsj+QiwhPEYX0/BSdo9CkaeuEpeTDLY7/guzxTeUGALorTW
-PYDH5ie8XZqwyEsz6yFDMk3hoNsrX0Y+gH/mpQVqox4dXCCWPF7bDvNZ/W7uJ5dS
-dwYhHjZ0hvDDhW3VEFlQVEllrBYKQDVNPhZeOcgyLCifsdJXWLQjQWlkYW4gU2tp
-bm5lciA8YWlkYW5Ac2tpbm5lci5tZS51az6IZgQTEQIAJgUCR/KkeQIbAwUJEswD
-AAYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEG+eB3yABMkiQLQAn3NFZrGrzW8W
-1s8YnrAAxJ6xWFfFAJ9FkR159MVTHaJGAIzn0Iq9eLDUqrkCDQRH8qSPEAgA22Cf
-Xspnd5mqQD6FfWUbZAO6AQ0ehwprA/q3PqdAAtQXbJYRzmuIIwrb50Md7FEwCIWt
-FS0wtbSfPTtDE+C4P93r5K87U0Xg/o4MundjoPjeCGNsTYicpewdlS2WcdWl2BJI
-+G5yPLhq2/vTI8Sg2sCpktunEFw/g/BzsigbJhsSC63NV8LyHBhbBELifFySwWh/
-ZzPCpXbdxzUdwwi7P57+n/DsmfjbXe0okr2QQL4EtDapqvcwnSlz9c4hNw9ku/m9
-YMiQMKRSmtG/ymH7u8F1CZRurvOaaFFbaoWhSZF7nnUH6H4z5HY+aNbufXa0Ffpb
-kTZqLD6amvrTr6NIbwADBQf+Pn2PkGHhSrF1CWQBDNJC0n/vqnc48QxcGoN0Lu02
-Rj0/UNwVKRFy6VGLBEfyxR08ZWi2EkvlYm+VGyv+wQlfAhwyDBHAEVE+j3lWq90+
-B1Pnf5j5p1vRfKCkAWFddILJUoh8fQKUinZdoAWZf3Qn10HoIkAoYw+wo7xIvwch
-/zIpq45n24W/iDcKAggJ3fl6gO7+Hkttig3nbcaQ0xDi/XwkBP4cUqnvwka2E3Bu
-5KiFKc8cdy4mtYrqiDDZ0EZLr7Hx/3uy8kaIzdsep/g0xKOka6Xs10XG3Sg8vDmv
-OEhlDHlTkVF8WpxsabDOselYSu6kURiLKkgHvrUe4OM+SohPBBgRAgAPBQJH8qSP
-AhsMBQkSzAMAAAoJEG+eB3yABMkih7YAoIwSenHROUBAj/ZU9qttReAoUPeLAKCT
-9JRkXdhK2IGqlgc4N0sfZqdx/w==
-=wO1+
------END PGP PUBLIC KEY BLOCK-----
-pub 1024D/4CD790EB 2009-04-30
-uid Martin Ritchie <ritchiem at apache.org>
-sig 3 4CD790EB 2009-04-30 Martin Ritchie <ritchiem at apache.org>
-sub 4096g/E0525999 2009-04-30
-sig 4CD790EB 2009-04-30 Martin Ritchie <ritchiem at apache.org>
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.9 (Darwin)
-
-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
-=2ZcN
------END PGP PUBLIC KEY BLOCK-----
-pub 1024D/F947EB65 2008-11-15
- Key fingerprint = 6248 903F C80E C609 4F9E 7CC7 EE47 2841 F947 EB65
-uid Rafael H. Schloming (CODE SIGNING KEY) <rhs at apache.org>
-sig 3 F947EB65 2008-11-15 Rafael H. Schloming (CODE SIGNING KEY) <rhs at apache.org>
-sub 4096g/079367FE 2008-11-15
-sig F947EB65 2008-11-15 Rafael H. Schloming (CODE SIGNING KEY) <rhs at apache.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.7 (GNU/Linux)
-
-mQGiBEkeOBMRBAC++lIdguyJ+qXv/TCPuYIfAkfvwrzSush6iOT8vdJIj4YS4CHM
-qsrcU+ujIQMQx/kG3h/baYlkKKrMXVE2sc1WkzwkR4KXDe8NfDZVSyxVafq1JOHe
-kW0VYpaL4F6UIXumRI5B+LBoBF9LpcolvgbLA3X5z5mCw+cgYWpE9vghIwCgkE8c
-acp6KRxfBn+puvJEOhyY7sED/RxImMlW3ACp6MqCigKW182mjBQGOivRNeZpaOWn
-Z0b1rWNO64DAsNALTQqsoJbddWwi35bHV9YhA8i1d0OkSowS83m5M6j1i/1A+yny
-Vp3XB/Oc+LLGqNYsRcI3t1P/DtoDDi+qmFKBvNccsTIbrfXrNSH9KaHDoHF8He0G
-NcuiA/9c2Yx81qrAa3nY2BaEUU3EB6nPtD2rZXOR3HL0C6p4LLZLvbxtZs5AKj1f
-loN9cipJWBZozd4IHrhDAOvfwE58VOZXJ2zrp9WlZ2fLtMXa9a/IWwMsiupOYh8G
-mqKoqdEKqDGTl1Now2GlzTAXrha+p8r6TPBc+dT0iwKMWSu8z7Q3UmFmYWVsIEgu
-IFNjaGxvbWluZyAoQ09ERSBTSUdOSU5HIEtFWSkgPHJoc0BhcGFjaGUub3JnPohg
-BBMRAgAgBQJJHjgTAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQ7kcoQflH
-62WtIQCfRHdJlaXrdPjCKVg/EcWGmn1JP68An3Oj64ygDeY1ahNG5F4hNXS4I1dl
-uQQNBEkeOBMQEADj1WCB8ej2gboO96tZL3hWAoVt2JxzjH94I7xnv6fCcYLc8k1w
-KawrCOnDlCzqSxXePoMwCkUIbFWMOXO7/GFFl/I75Tna+Sb/6BRqS9C2yJZImuHC
-i4wC7ZXJSKoxHycAkZjhChl57o/EM3Eth2nBq8ZJ05nfU4IpRDXRLBd9CgQbyNs4
-rqYnY4hfwKIeUK6gijj+YaqAMTsu31xRwIjAwh+FJJxX0YZZbE3D3hUdtfUW925o
-KIcYUtQRgp9dPllFBPscCXfvYix7o03Wxd3MQdfjLugSL8bU8ANdzxc74ePTV0p3
-bL8KsG62YguNA3n6fXHZQagNxyhCGa51R12saOmj7tKTCX9aKhs4tq+bQAfw/49G
-NsRGJEtvNlWzWr3EhNHoKdVSpvVC5uj87+RUEKrupeZX9u0D3Sm7pS2v2AxxlldH
-sW2eOCy23O6XTdGnbG9skKEAuszHXN2NZWJBEVoLYCXP7gxuA2KWOMNcxerfrhR9
-dyOBQcaelHKC1roBgVuIg3rlH1CKv6KINWRsRWkFiCrPE/RXCcdTuaiE9Ss3bdAp
-7B7RBA1xvCr1Lj4ICHCfo4JtymQOSQRkqq3reoBk2IOXvdTkZ3B3tbWtASM2H5Ww
-7kCHZZ1OT9saBPNXHaV/vx9QGRjAb72AWwYBqNazhVSVDyfeQuf0tkEV6wADBQ/9
-ExGBMgxTZGvf2LzmDqu+dItGtXG3EIi4Lh91Biyx8S21p7KtwY7HTCx18JneoRlJ
-HLLNrtF3Rp7gVDuxEJN5F9q7dUlRnFAz0Z8eXf8fSQCUvjmuP2V/iHPyfHhHPNm+
-KcjLQP5H3WfIYsC7sEFufkvQFdyccQnm66V33NlBrTEfJE2HFjCdAh4nsEkpjdxZ
-m774c2rWGX8IhzfwmqJj09P9SPjY5l/I+JOLeU0PSdru9Gon+z07GdRTCIRdQsXR
-uNYXbRGBdYmV/QdlP08B8NRQnNjusNVEawJQo84aZlut1LgX0k9bL8s+1Sepr04A
-yb+fJ7reMoxvkTyG6riIYTXr/OpVSqCNO0h477E/myCftGzn30OGzTEgxaCWSYLE
-2jWK/kqLtUcthrwYf4Ksmio083ZlNkNBmlJUYHMr8djCCL2xl0V/miJRnu/3/z7O
-QzMUrOqfMX2xran5x4B75GzvTwYJsEyixHcq6vI19KWCG5KsksFwaFBQ3kvyNc/0
-Oar1FnK597ynPadwGISEzK1jSRZp0cIJKUlrwsm9crS+rWp8Z1gHflhEPVHw7Lp5
-BFcqC3gxzxJBBgnckNZzP8IEiTykz0E0F2qsqLstEfsIERQbqXU2VhEO3UDKKuEX
-34hJx+wJxaGsFPeWHwVYD4fOdQo6W1oyFG8C3JQvJHGISQQYEQIACQUCSR44EwIb
-DAAKCRDuRyhB+UfrZRj/AKCF05jpImxWnTE3NFcKOQs80r1wLQCfaYGsG9UW0OyG
-uzHMwWjy3fI5vO8=
-=7jSO
------END PGP PUBLIC KEY BLOCK-----
-pub 1024D/F9F488C8 6/1/2009 Steve Huston <shuston at riverace.com>
- Primary key fingerprint: BDCE 77FF 4951 C559 97DA D55A E33C 8BB4 F9F4 88C8
-
-----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.9 (MingW32)
-
-mQGiBEokNtsRBAC/abmZz/J7Xb+00cONQyDS7H5+jq09h9f8rkahReqX+QP0i9F6
-5nY5nULDuOpBcgYCRmrnHcSk+pBWeKYal+kpKwRc6vSXy5AXE6iePHXXpr8LSSkl
-DoxQkNRw52FVh2oA1Tb6lIv1diNuK1mJg+KT5UA+jbglhZbgQ5L7YRweewCg2qZD
-6PYVb4HkijgPHKUj9BpWvQcD+we/mfi6PcU6hzCjna3n8DPFXfdWvmIjtR9cZnbx
-VO9CALrQLKbdTwNd6bsDHxiFQracBJmvoiGZmaFJLhI9c0okee8FzwjTh7Y5SPWn
-rllq3PtXjZ4SRMz4Bj5AYOjX44aaialwtS/w+JQdihAPpsL3nDM6ttOrHVtMdaN9
-ThxkA/9yhogLjeeKhdukaUGDtOdkqm+vIbiArCGHUWhb0mDzQRsStqizRTrCgl4q
-EYI2OdE62Zj5sDAXBPI/wuSxcgr4zqSPvV+lQZW6gdp9bKdZglYcHcYHrdsg2CwZ
-Cx5IM2/+Jt6txOf478GtPrzIgLqy709D8nb8/5V+QgjEtSA63LQjU3RldmUgSHVz
-dG9uIDxzaHVzdG9uQHJpdmVyYWNlLmNvbT6IYAQTEQIAIAUCSiQ22wIbAwYLCQgH
-AwIEFQIIAwQWAgMBAh4BAheAAAoJEOM8i7T59IjIKvEAn30xICmorA9Z8EzOgOFf
-3ikP4mqQAKCxL51xoaL+qFcidVWmwvCKlzjUjrkCDQRKJDbbEAgA6FvUZdm9LBME
-tC49xtgJSE4GkaOgz0W0l5otMWMzy3NPW9PJtKopZWJ2eJvlHoXcGJL27nVGaOFJ
-8ixYPgkAFQ7JX1IDAQQMDXRro/cMsj6usmNbqMvrEETEiL9rP4iH8qwjOSKiHpIG
-sQy4AwmYkJg2zBxAIrrJzLyWicz75yO/PT81CX6ar6CGl1H5JWGZwerjLhc67gNu
-AyXKEVQpKk/T78uFD/HGNd6C9vHjb5LbuNAlRISwgoHAyvayvITjZZtyrr5cWVPL
-mT05FoweGAjJ/AjKfIH4lTlzE+ElC1WEaPwinzo22bQIQPxS10G9DVqm7h36VGH1
-NHa/EME56wADBQgAorINiaUPnCUPvgvQzmTgcDcCDvtPuxl8OzYT30QQSQwOLS1y
-rvu4DLW/DH5s0yIgzyX1PGhGSELU07qgj05W906EBt0D5KNiUbKg2lsD0Nec+Kzq
-jmej7SbZOJGIwNJe+U8s5iHvvP7Ak4YO0Q6hGtsmhC3UO5wBF8XjEbWCAJpjYbt3
-cyPyyArzW2X3IpICsuzdtkzQttb6BJy+ZHJLMHTN9/J3+naQrqvjiFBJY9jcUx5t
-XxWrfhW0/kjphLvcNm3RBRW46UDMzl2DA74kt/2si3dS7RikEcsX0wQ8pjp47bmw
-TpsjEqzUHv1bU56V+FJWi9GdRLsJaapq9dDV2ohJBBgRAgAJBQJKJDbbAhsMAAoJ
-EOM8i7T59IjISAAAoJwqwTBx2NOi5+CKBZxKqxSkHVM7AJ9+oJXoulLDoMhvqVIo
-e8ukbGoaqQ==
-=rn3+
------END PGP PUBLIC KEY BLOCK-----
-pub 4096R/997584D5 2009-10-19
- Key fingerprint = 36BE D3F6 694B 1C93 FA37 EDD8 C5CC D011 9975 84D5
-uid Andrew Stitcher (CODE SIGNING KEY) <astitcher at apache.org>
-sub 4096R/C398A6CE 2009-10-19
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v2.0.12 (GNU/Linux)
-
-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
-98DlwjCP/7B3MVcaMlPP+/s/M3jqLasRybw=
-=7tgO
------END PGP PUBLIC KEY BLOCK-----
-pub 4096R/54FDD85D 2010-09-26
-uid Robert Gemmell (CODE SIGNING KEY) <robbie at apache.org>
-sig 3 54FDD85D 2010-09-26 Robert Gemmell (CODE SIGNING KEY) <robbie at apache.org>
-sig A9D7D0C7 2010-09-27 Andrew Kennedy (Andrew Donald Kennedy, Nevada Systems, Edinburgh/London, United Kingdom) <andrewinternational at gmail.com>
-sub 4096R/59485A09 2010-09-26
-sig 54FDD85D 2010-09-26 Robert Gemmell (CODE SIGNING KEY) <robbie at apache.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG/MacGPG2 v2.0.14 (Darwin)
-
-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
-=+QeH
------END PGP PUBLIC KEY BLOCK-----
-pub 1024D/A9D7D0C7 2006-02-24
-uid Andrew Kennedy (Andrew Donald Kennedy, Nevada Systems, Edinburgh/London, United Kingdom) <andrewinternational at gmail.com>
-sig 3 A9D7D0C7 2006-02-24 Andrew Kennedy (Andrew Donald Kennedy, Nevada Systems, Edinburgh/London, United Kingdom) <andrewinternational at gmail.com>
-sig 3 A9D7D0C7 2010-09-26 Andrew Kennedy (Andrew Donald Kennedy, Nevada Systems, Edinburgh/London, United Kingdom) <andrewinternational at gmail.com>
-uid Andrew Kennedy (CODE SIGNING KEY) <grkvlt at apache.org>
-sig 3 A9D7D0C7 2010-09-26 Andrew Kennedy (Andrew Donald Kennedy, Nevada Systems, Edinburgh/London, United Kingdom) <andrewinternational at gmail.com>
-sig 54FDD85D 2010-09-27 Robert Gemmell (CODE SIGNING KEY) <robbie at apache.org>
-sub 2048g/6EEF3958 2006-02-24
-sig A9D7D0C7 2006-02-24 Andrew Kennedy (Andrew Donald Kennedy, Nevada Systems, Edinburgh/London, United Kingdom) <andrewinternational at gmail.com>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.10 (GNU/Linux)
-
-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
-jvJP5xcF6/EBpys=
-=Wc+j
------END PGP PUBLIC KEY BLOCK-----
-pub 4096R/C6B459DB 2011-07-18
-uid Justin Ross (CODE SIGNING KEY) <jross at apache.org>
-sub 4096R/95BB2C1A 2011-07-18
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v2.0.17 (GNU/Linux)
-
-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
-MxumwmEHVDFpDpKCCnJa9A==
-=Uryx
------END PGP PUBLIC KEY BLOCK-----
-pub 4096R/40851BBB 2013-10-25
-uid Ted Ross (CODE SIGNING KEY) <tross at apache.org>
-sub 4096R/50FD353D 2013-10-25
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1
-
-mQINBFJqaLUBEAC/fM8stbqi6gK5ZEYMKLuuEVtg9rpUkno1/s9l+f09kXaNG2/Y
+xsFNBFJqaLUBEAC/fM8stbqi6gK5ZEYMKLuuEVtg9rpUkno1/s9l+f09kXaNG2/Y
kh7zbLbGhHJcNVgdIIDAtIZ4hPmRnxVcC5XFyxXJEemu3qtzMe+C4ad9KWdC8XVZ
wNBLvqDUrEumjGh3ORasZYe/DbhK3AAxvNf20HRlcfVqfa+fxtvCLwRWThH6KS45
1fTBHMhsDuZGTt3+HyV5+JGhWxaaY7hjEt+JDNa/HSG0Vge43t8r0g/kXMp/y7DU
@@ -443,8 +11,8 @@ cZZjxbMQq/1vaeDWeIzjVEO7D+9aJRckC/STMw4sNCzTi3hrgVnFJLDvWfhKg4EF
Fm1cW8+96TsXr9kJscT4K5wY+ErqYDo7IqtcLqgUUfd/2P29I3SyEVu9PsH8VU+j
uEQPbrf/ntfS0m+CoNpaQylMEII0/4gXbTZTIgD7+PUzCJiQkz8B87qPO82NLxYn
Uw9V7HGhnhJYW3vPYJBYNWio15D9Ql7kTYYHowMuoALqAq4nZbp6CTNDqwARAQAB
-tC5UZWQgUm9zcyAoQ09ERSBTSUdOSU5HIEtFWSkgPHRyb3NzQGFwYWNoZS5vcmc+
-iQI3BBMBAgAhAhsDAh4BAheABQJSamqmBQsJCAcDBRUKCQgLBRYCAwEAAAoJELDR
+zS5UZWQgUm9zcyAoQ09ERSBTSUdOSU5HIEtFWSkgPHRyb3NzQGFwYWNoZS5vcmc+
+wsF3BBMBAgAhAhsDAh4BAheABQJSamqmBQsJCAcDBRUKCQgLBRYCAwEAAAoJELDR
42hAhRu7BjwP/RiuajTKl45EJSsuHH1YOWUf3gb0AgUfO6xrGHxbvNnrrVOcZyEJ
xuH4eacxtIheH+CQHdnrxzWIO/00++gjteXFxGwp+6U71F/YC52Kk8EbfdhnzFEF
9FmOMUHqyCjNL7cbfeujOmIOfGJg7FOVT6LF4TdQCNQrSM1DelL2bX2B4yX2oKeq
@@ -455,7 +23,7 @@ e1G2U2L9dwAu+NTqjjBJ05t+8hkOCg2zUp7HHcSyv4y74Kh3neVAm0r7ROI3uE4W
bsr2E/tBE5QcOVZrPfhGMrFauGR4rjfyiCI0rl7gXyEkE62ijHezcuCfyMe3+1jD
9KfbZgtOOqJXac6GXrCnfB5i+UfciXuPiQmgn96FPC4PGV3lEMBOGd//6R3dO1Rr
4k66zD3lpeiltIE6Ff9yYqdHYQv05lYqf7pNqV724+2hiVjJcBCF6OvlRrg4IPHE
-Fp2mqzLDca4qm/o7GDSr3A/5fL7BGWa6p0l2f+8xchXPl5jbCjDM53DIuQINBFJq
+Fp2mqzLDca4qm/o7GDSr3A/5fL7BGWa6p0l2f+8xchXPl5jbCjDM53DIzsFNBFJq
aLUBEADFEQxN8Tjc3pMP+fTTFI6/MuVcNLhsRWS2QjhqcH8rRqn9rryVIHpHsHli
jOX16kyczm846KiHr68Hzl5ll3rHHQiMG71Om+2szJjxAd3KZ3x+ozBA3gsXSzfV
q3RY1XuvBZsEbnERNpppDas8a6nAa6fcueN5//cem6PnaYEa3+eiZx5YviSKoVqM
@@ -466,7 +34,7 @@ I4CzZzahbAIZ6cRjCm7zqo6zvWodTSUNgxplp7uCFVlLU2AVOGD1duJHBIyCXNyV
w7bJaLOWBhrhDO37WnAPc5ci8qByMGE5DCMu10C8/8HCgmJTK9XBriPp8OZkjIID
ypm2eUSuOJHNKhJjSwHqBD6MAMH8MrHH+T7QlB3oa7DkrgQFojoVzQHi8GG24vwy
91FiyESxe9PTEgdPCQsfYIN6/LQTdHp+w+sRp+pWNBIG/QhAs9DhN+dZ7/1fvjEz
-cnXqNVXAdkr9xYGM0HIyGr+8oxFKTqp8O9ZlCfk+VxYo8BjITwARAQABiQIfBBgB
+cnXqNVXAdkr9xYGM0HIyGr+8oxFKTqp8O9ZlCfk+VxYo8BjITwARAQABwsFfBBgB
AgAJBQJSami1AhsMAAoJELDR42hAhRu7aZ4P/2S9V8m6IklQqEuoMAwZ5in8LDGH
Y6xBNs/3xzwcNGXgxKHbIg3G0bQkkABdc22/z0rH1XLAT2OWPw1UDija6OACAUHF
+R6JZvKWi+qSoqF3S+psPMyYyAOEbgA1AMwce1yTS/jmPXh/eMfq8+1wVrhwy6gd
@@ -478,619 +46,849 @@ JiDeyEwLMJ6ZqfwvcdzW1ISDdcMBKxNkD3BTjadgkD5w1Z1ATHViae1DFciCkm8C
Bkhqr0lQDZe+tsGeH4sb1Me7bsmJby772MgqKS1f5hPEZs9mQw3jC7ZTIHOUAcR5
pCyY+HdoCA3Rke3rPXpFe5OqvRwui/BRGrtOSCkSRkghcFFfFGhX/w2SdMOEWFPW
aNza9296q0uETHSa6v49UkN34Sb5fIC1OSmtjlJxcVCDayawjje0rn0Fq+X7xy2O
-+coC6qGNNiLFEN9R
-=qSGX
------END PGP PUBLIC KEY BLOCK-----
-pub 4096R/A753022C 2015-11-26
- Key fingerprint = 5CD6 D521 C398 7B54 2E4D 0B92 C1A6 A9A6 A753 022C
-uid Oleksandr Rudyy <orudyy at apache.org>
-sub 4096R/169FC8DC 2015-11-26
-sub 4096R/F9433F69 2015-11-26
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v2.0.19 (FreeBSD)
-
-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
-=GDWc
------END PGP PUBLIC KEY BLOCK-----
-pub rsa2048/E5241B42 2015-12-18
- Key fingerprint = 2F1C B0CF 82DD C5A5 7EE3 F78A 6139 4E4A E524 1B42
-uid [ultimate] Keith Wall <kwall at apache.org>
-sub rsa2048/49C6D75F 2015-12-18
-sub rsa4096/0C1B8DC5 2015-12-18 [expires: 2017-12-17]
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v2
-
-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
-3jk=
-=WEZT
------END PGP PUBLIC KEY BLOCK-----
-pub rsa4096/A1889D82 2017-05-25 [SC]
- Key fingerprint = E3E1 90BB 8BA4 79C9 69D3 4FF9 C946 F242 A188 9D82
-uid [ultimate] Lorenz Quack (CODE SIGNING KEY) <lquack at apache.org>
-sub rsa4096/E8B16F6E 2017-05-25 [E]
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v2
-
-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
-aPoiD3dFnayBJOCM/LFt/1Y=
-=fzHm
------END PGP PUBLIC KEY BLOCK-----
-pub 4096R/885AB0C9 2017-03-08
- Key fingerprint = DBC7 4C8B 4C3E 535B E65D 0529 87FC E135 885A B0C9
-uid Kim van der Riet (CODE SIGNING KEY) <kpvdr at apache.org>
-sub 4096R/B430816B 2017-03-08
-
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-
-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
-+Nwig3rw9bkL2yKBnsN8IiIzdFcr
-=iBI5
------END PGP PUBLIC KEY BLOCK-----
-
-pub rsa4096 2018-04-10 [SC]
- 42A18EFF2267BEF0C4F202E291A5A5203FE38330
-uid [ultimate] Ganesh Murthy (CODE SIGNING KEY) <gmurthy at apache.org>
-sig 3 91A5A5203FE38330 2018-04-10 Ganesh Murthy (CODE SIGNING KEY) <gmurthy at apache.org>
-sub rsa4096 2018-04-10 [E]
-sig 91A5A5203FE38330 2018-04-10 Ganesh Murthy (CODE SIGNING KEY) <gmurthy at apache.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-
-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
-hjxwnQsWG0arATWXmtf1JGU=
-=E2x4
------END PGP PUBLIC KEY BLOCK-----
-
-pub 4096R/F1F05F9A 2018-08-07
-uid Kim van der Riet (CODE SIGNING KEY) <kpvdr at apache.org>
-sub 4096R/673719B9 2018-08-07
------BEGIN PGP PUBLIC KEY BLOCK-----
-
-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
-R34pkqcdbayR2v7+cgMRoHofRiM=
-=udLt
------END PGP PUBLIC KEY BLOCK-----
-pub 4096R/012672EB 2009-12-15
-uid Timothy Bish (CODE SIGNING KEY) <tabish121 at gmail.com>
-sub 4096R/82260FDE 2009-12-15
-sub 2048D/1F0F8A38 2014-12-15
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1
-
-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
-bp1UaEkuqjCr1BA90Ui2nbGxTEdbzefAOWk=
-=WG1e
------END PGP PUBLIC KEY BLOCK-----
-
-pub rsa4096 2021-05-12 [SC]
- 90B3 8F18 CEE0 E7BD 1548 B5EE 1F1F 7602 3762 29C1
-uid [ultimate] Kenneth Giusti (QPID APACHE CODE SIGNING KEY) <kgiusti at apache.org>
-sub rsa4096 2021-05-12 [E]
------BEGIN PGP PUBLIC KEY BLOCK-----
-
-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
-=JUB+
------END PGP PUBLIC KEY BLOCK-----
-pub rsa4096 2022-11-02
- B6D3C1AE3A02550D5D5FCD7825A5AB47B4445A7F
-uid Tomas Vavricka (CODE SIGNING KEY) <vavrtom at apache.org>
-sub rsa4096 2022-11-02
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-
-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
-COruG1JtgX3gDZqQV4P1+DHQ
-=NqvB
++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
+TrTRdBOGs8cRQAFUbmoW+y8cYtyFjcbA4gRD/n5/EQQAmGtzwgMlwq6LNl07mzlt
+/r9sj5+XFIpAEeUwH1daPR6GZl72zdl9s+tyZHUDaBmYiHtQq9YzjLF+Alu9o/+u
+uZj7TNE27LgOzRkGie9hy+I2o+OQX05mApYGgw8vjS+BiHDq7gJOFMxZfYWNhc1F
+v63vHtrbPQgge3P4iQ76gBsAoNpr5CUEz82tG1O/o7N0uxW5GeDFBACGu0RMogul
+YDMjHMEoRdLbC9dflikiRrEiakYTtG4K0oC3gi282posEadA66z684OOJ7DQbtso
+Z8MWy/LrgpgNIrYQhKTzNXT2wdn6DqKpuSED2Ul8YAcT9Z6oFCwqcXldwA9OmwfJ
+Tv4lfl2V3WsG1q5nQ/64Hq3SxDz2R0UWrgP/Q3PgD2OS9B1brRomFqz+gMw8kXqv
+mHoec8D5GkmC1yPSZ4RjmtGFQmlnazKlzbqbylJJKcBXm7k+zgKIoamieanHuGq8
+j2O+k3XqltrjhP5XzxKfR81NF38b1vA0yeiQcliHsMoXjQGg/4QUTWuaIcTiNnJB
+cXEU/MkUSWHKIQrNeEFuZHJldyBLZW5uZWR5IChBbmRyZXcgRG9uYWxkIEtlbm5l
+ZHksIE5ldmFkYSBTeXN0ZW1zLCBFZGluYnVyZ2gvTG9uZG9uLCBVbml0ZWQgS2lu
+Z2RvbSkgPGFuZHJld2ludGVybmF0aW9uYWxAZ21haWwuY29tPsJdBBMRAgAeBgsJ
+CAcDAgMVAgMDFgIBAh4BAheABQJMn81iAhkBAAoJEIXHbVCp19DHyUAAmO6W13qh
+Nt1Zl+xtDPpKV36KcnQAn0q1ZqGKcFO56q3Y8qFeWNwGw/F1wlsEExECABsFAkP+
+fn8GCwkIBwMCAxUCAwMWAgECHgECF4AACgkQhcdtUKnX0McTwgCguvjqf5rIUV8n
+qdgeYupGus7pTjgAnRzUouE4jwPEEyP60nGxGlUfHHM+zTVBbmRyZXcgS2VubmVk
+eSAoQ09ERSBTSUdOSU5HIEtFWSkgPGdya3ZsdEBhcGFjaGUub3JnPsJgBBMRAgAg
+BQJMn8xuAhsjBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQhcdtUKnX0MfxqQCg
+zuxkTVN0iDDCiPrL7cP1RDN0jekAoMgvuIv5Zlhsq2ewqpqR9mExcgA4wsFcBBAB
+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
+=UFlN
-----END PGP PUBLIC KEY BLOCK-----
=====================================
debian/watch
=====================================
@@ -1,3 +1,5 @@
-version=4
-opts="pgpsigurlmangle=s%$%.asc%" \
-https://downloads.apache.org/qpid/proton-j/@ANY_VERSION@/apache-qpid-proton-j-@ANY_VERSION@-src@ARCHIVE_EXT@
+Version: 5
+
+Source: https://downloads.apache.org/qpid/proton-j/@ANY_VERSION@/
+Matching-Pattern: apache-qpid-proton-j- at ANY_VERSION@-src at ARCHIVE_EXT@
+Pgpsigurlmangle: s%$%.asc%
=====================================
examples/engine/pom.xml
=====================================
@@ -19,7 +19,7 @@
<parent>
<groupId>org.apache.qpid</groupId>
<artifactId>proton-j-parent</artifactId>
- <version>0.34.0</version>
+ <version>0.34.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
=====================================
examples/reactor/pom.xml
=====================================
@@ -19,7 +19,7 @@
<parent>
<groupId>org.apache.qpid</groupId>
<artifactId>proton-j-parent</artifactId>
- <version>0.34.0</version>
+ <version>0.34.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
=====================================
pom.xml
=====================================
@@ -26,7 +26,7 @@
<groupId>org.apache.qpid</groupId>
<artifactId>proton-j-parent</artifactId>
- <version>0.34.0</version>
+ <version>0.34.1</version>
<packaging>pom</packaging>
<name>Proton-J Parent</name>
@@ -49,7 +49,7 @@
<!-- surefire forked jvm arguments -->
<argLine>-Xmx2g -enableassertions ${jacoco-config}</argLine>
- <project.build.outputTimestamp>2022-08-30T16:51:57Z</project.build.outputTimestamp>
+ <project.build.outputTimestamp>2023-03-02T17:09:36Z</project.build.outputTimestamp>
</properties>
<dependencyManagement>
@@ -183,6 +183,13 @@
<pushChanges>true</pushChanges>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <noindex>true</noindex>
+ </configuration>
+ </plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
@@ -205,7 +212,7 @@
<connection>scm:git:https://gitbox.apache.org/repos/asf/qpid-proton-j.git</connection>
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/qpid-proton-j.git</developerConnection>
<url>https://gitbox.apache.org/repos/asf?p=qpid-proton-j.git</url>
- <tag>0.34.0</tag>
+ <tag>0.34.1</tag>
</scm>
<issueManagement>
<url>https://issues.apache.org/jira/browse/PROTON</url>
=====================================
proton-j/pom.xml
=====================================
@@ -19,7 +19,7 @@
<parent>
<groupId>org.apache.qpid</groupId>
<artifactId>proton-j-parent</artifactId>
- <version>0.34.0</version>
+ <version>0.34.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
=====================================
proton-j/src/main/java/org/apache/qpid/proton/engine/impl/DeliveryImpl.java
=====================================
@@ -291,6 +291,12 @@ public class DeliveryImpl implements Delivery
void addToTransportWorkList()
{
+ TransportSession transportSession = getLink().getSession().getTransportSession();
+ if (transportSession != null && transportSession.endSent()) {
+ // Too late to action this work, dont add it to the transport work list.
+ return;
+ }
+
getLink().getConnectionImpl().addTransportWork(this);
}
=====================================
proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java
=====================================
@@ -469,6 +469,7 @@ public class TransportImpl extends EndpointImpl
}
writeFrame(transportSession.getLocalChannel(), detach, null, null);
+ transportLink.sentDetach();
}
endpoint.clearModified();
@@ -561,6 +562,11 @@ public class TransportImpl extends EndpointImpl
SessionImpl session = snd.getSession();
TransportSession tpSession = session.getTransportSession();
+ if (tpSession != null && tpSession.endSent()) {
+ // Too late to action this work, clear it.
+ return true;
+ }
+
boolean wasDone = delivery.isDone();
if(!delivery.isDone() &&
@@ -676,7 +682,7 @@ public class TransportImpl extends EndpointImpl
}
}
- if(wasDone && delivery.getLocalState() != null)
+ if(wasDone && delivery.getLocalState() != null && tpSession.isLocalChannelSet())
{
TransportDelivery tpDelivery = delivery.getTransportDelivery();
// Use cached object as holder of data for immediate write to the FrameWriter
@@ -694,6 +700,11 @@ public class TransportImpl extends EndpointImpl
writeFrame(tpSession.getLocalChannel(), cachedDisposition, null, null);
}
+ if(!wasDone && tpLink != null && tpLink.detachSent()) {
+ // Too late to action this work, clear it.
+ return true;
+ }
+
return !delivery.isBuffered();
}
@@ -703,6 +714,11 @@ public class TransportImpl extends EndpointImpl
SessionImpl session = rcv.getSession();
TransportSession tpSession = session.getTransportSession();
+ if (tpSession.endSent()) {
+ // Too late to action this work, clear it.
+ return true;
+ }
+
if (tpSession.isLocalChannelSet())
{
boolean settled = delivery.isSettled();
@@ -1055,6 +1071,7 @@ public class TransportImpl extends EndpointImpl
}
writeFrame(channel, end, null, null);
+ transportSession.sentEnd();
}
endpoint.clearModified();
=====================================
proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportLink.java
=====================================
@@ -37,6 +37,7 @@ class TransportLink<T extends LinkImpl>
private UnsignedInteger _remoteLinkCredit;
private boolean _detachReceived;
private boolean _attachSent;
+ private boolean _detachSent;
protected TransportLink(T link)
{
@@ -226,4 +227,14 @@ class TransportLink<T extends LinkImpl>
{
_remoteDeliveryCount = remoteDeliveryCount;
}
+
+ public boolean detachSent()
+ {
+ return _detachSent;
+ }
+
+ public void sentDetach()
+ {
+ _detachSent = true;
+ }
}
=====================================
proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportSession.java
=====================================
@@ -70,6 +70,7 @@ class TransportSession
private int _unsettledIncomingSize;
private boolean _endReceived;
private boolean _beginSent;
+ private boolean _endSent;
TransportSession(TransportImpl transport, SessionImpl session)
{
@@ -527,4 +528,14 @@ class TransportSession
{
_beginSent = true;
}
+
+ public boolean endSent()
+ {
+ return _endSent;
+ }
+
+ public void sentEnd()
+ {
+ _endSent = true;
+ }
}
=====================================
proton-j/src/test/java/org/apache/qpid/proton/engine/impl/DeliveryImplTest.java
=====================================
@@ -735,7 +735,9 @@ public class DeliveryImplTest
private DeliveryImpl createSenderDelivery() {
LinkImpl link = Mockito.mock(SenderImpl.class);
ConnectionImpl connection = Mockito.mock(ConnectionImpl.class);
+ SessionImpl session = Mockito.mock(SessionImpl.class);
+ Mockito.when(link.getSession()).thenReturn(session);
Mockito.when(link.getConnectionImpl()).thenReturn(connection);
return new DeliveryImpl(null, link, null);
=====================================
proton-j/src/test/java/org/apache/qpid/proton/engine/impl/TransportImplTest.java
=====================================
@@ -4895,4 +4895,304 @@ public class TransportImplTest
assertNoEvents(collector);
}
+
+ /**
+ * Verify that the transport work list doesnt retain deliveries+link+session on when a session
+ * is closed and freed while there is an active receiver link with deliveries still outstanding.
+ */
+ @Test
+ public void testTransportWorkListDoesntLeakDeliveriesEtcFromSessionFreedWithActiveReceiverWithOutstandingDeliveries()
+ {
+ MockTransportImpl transport = new MockTransportImpl();
+ ConnectionImpl connection = new ConnectionImpl();
+ transport.bind(connection);
+
+ connection.open();
+
+ Session session = connection.session();
+ session.open();
+
+ String linkName = "myClientReceiver";
+ Receiver receiver = session.receiver(linkName);
+ receiver.flow(5);
+ receiver.open();
+
+ pumpMockTransport(transport);
+
+ assertEquals("Unexpected frames written: " + getFrameTypesWritten(transport), 4, transport.writes.size());
+
+ assertTrue("Unexpected frame type", transport.writes.get(0) instanceof Open);
+ assertTrue("Unexpected frame type", transport.writes.get(1) instanceof Begin);
+ assertTrue("Unexpected frame type", transport.writes.get(2) instanceof Attach);
+ assertTrue("Unexpected frame type", transport.writes.get(3) instanceof Flow);
+
+ Delivery delivery = receiver.current();
+ assertNull("Should not yet have a delivery", delivery);
+
+ // Send the necessary responses to open/begin/attach as well as a transfer
+ transport.handleFrame(new TransportFrame(0, new Open(), null));
+
+ Begin begin = new Begin();
+ begin.setRemoteChannel(UnsignedShort.valueOf((short) 0));
+ begin.setNextOutgoingId(UnsignedInteger.ONE);
+ begin.setIncomingWindow(UnsignedInteger.valueOf(1024));
+ begin.setOutgoingWindow(UnsignedInteger.valueOf(1024));
+ transport.handleFrame(new TransportFrame(0, begin, null));
+
+ Attach attach = new Attach();
+ attach.setHandle(UnsignedInteger.ZERO);
+ attach.setRole(Role.SENDER);
+ attach.setName(linkName);
+ attach.setInitialDeliveryCount(UnsignedInteger.ZERO);
+ transport.handleFrame(new TransportFrame(0, attach, null));
+
+ assertEndpointState(receiver, EndpointState.ACTIVE, EndpointState.ACTIVE);
+ assertEndpointState(session, EndpointState.ACTIVE, EndpointState.ACTIVE);
+
+ String deliveryTag = "tag1";
+ String messageContent = "content1";
+ handleTransfer(transport, 1, deliveryTag, messageContent);
+
+ assertEquals("Unexpected frames written: " + getFrameTypesWritten(transport), 4, transport.writes.size());
+
+ delivery = verifyDelivery(receiver, deliveryTag, messageContent);
+ assertNotNull("Should now have a delivery", delivery);
+
+ delivery.disposition(Accepted.getInstance());
+
+ assertEquals("Expected the delivery to be on the transport work list", delivery, connection.getTransportWorkHead());
+
+ pumpMockTransport(transport);
+
+ assertNull("Expected the delivery to cleared from the transport work list", connection.getTransportWorkHead());
+
+ assertEquals("Unexpected frames written: " + getFrameTypesWritten(transport), 5, transport.writes.size());
+ assertTrue("Unexpected frame type", transport.writes.get(4) instanceof Disposition);
+
+ session.close();
+
+ pumpMockTransport(transport);
+
+ assertEquals("Unexpected frames written: " + getFrameTypesWritten(transport), 6, transport.writes.size());
+ assertTrue("Unexpected frame type", transport.writes.get(5) instanceof End);
+
+ assertNull("Expected the transport work list to be empty", connection.getTransportWorkHead());
+ assertEndpointState(session, EndpointState.CLOSED, EndpointState.ACTIVE);
+
+ // Send the necessary responses to End
+ End end = new End();
+ transport.handleFrame(new TransportFrame(0, end, null));
+
+ assertEndpointState(session, EndpointState.CLOSED, EndpointState.CLOSED);
+
+ assertNull("Expected the transport work list to be empty", connection.getTransportWorkHead());
+
+ session.free();
+
+ pumpMockTransport(transport);
+
+ assertNull("Expected the transport work list to be empty", connection.getTransportWorkHead());
+ assertEquals("Unexpected frames written: " + getFrameTypesWritten(transport), 6, transport.writes.size());
+
+ connection.close();
+ pumpMockTransport(transport);
+
+ assertEquals("Unexpected frames written: " + getFrameTypesWritten(transport), 7, transport.writes.size());
+ assertTrue("Unexpected frame type", transport.writes.get(6) instanceof Close);
+ }
+
+ /**
+ * Verify that the transport doesnt retain deliveries+link+session when a session is closed
+ * and freed while there is an active sender link with deliveries still outstanding.
+ */
+ @Test
+ public void testTransportWorkListDoesntLeakDeliveriesEtcFromSessionFreedWithActiveSenderWithOutstandingDeliveries()
+ {
+ MockTransportImpl transport = new MockTransportImpl();
+ ConnectionImpl connection = new ConnectionImpl();
+ transport.bind(connection);
+
+ connection.open();
+
+ Session session = connection.session();
+ session.open();
+
+ String linkName = "myClientSender";
+ Sender sender = session.sender(linkName);
+ sender.open();
+
+ pumpMockTransport(transport);
+
+ assertEquals("Unexpected frames written: " + getFrameTypesWritten(transport), 3, transport.writes.size());
+
+ assertTrue("Unexpected frame type", transport.writes.get(0) instanceof Open);
+ assertTrue("Unexpected frame type", transport.writes.get(1) instanceof Begin);
+ assertTrue("Unexpected frame type", transport.writes.get(2) instanceof Attach);
+
+ assertNull("Should not yet have a delivery", sender.current());
+
+ // Send the necessary responses to open/begin
+ transport.handleFrame(new TransportFrame(0, new Open(), null));
+
+ Begin begin = new Begin();
+ begin.setRemoteChannel(UnsignedShort.valueOf((short) 0));
+ begin.setNextOutgoingId(UnsignedInteger.ONE);
+ begin.setIncomingWindow(UnsignedInteger.valueOf(1024));
+ begin.setOutgoingWindow(UnsignedInteger.valueOf(1024));
+ transport.handleFrame(new TransportFrame(0, begin, null));
+
+ // Give the necessary response to attach for sender and grant some credit
+ Attach attach = new Attach();
+ attach.setHandle(UnsignedInteger.ZERO);
+ attach.setRole(Role.RECEIVER);
+ attach.setName(linkName);
+ attach.setInitialDeliveryCount(UnsignedInteger.ZERO);
+ transport.handleFrame(new TransportFrame(0, attach, null));
+
+ int credit = 10;
+ Flow flow = new Flow();
+ flow.setHandle(UnsignedInteger.ZERO);
+ flow.setDeliveryCount(UnsignedInteger.ZERO);
+ flow.setNextIncomingId(UnsignedInteger.ONE);
+ flow.setNextOutgoingId(UnsignedInteger.ZERO);
+ flow.setIncomingWindow(UnsignedInteger.valueOf(1024));
+ flow.setOutgoingWindow(UnsignedInteger.valueOf(1024));
+ flow.setLinkCredit(UnsignedInteger.valueOf(credit));
+
+ transport.handleFrame(new TransportFrame(0, flow, null));
+
+ assertEndpointState(sender, EndpointState.ACTIVE, EndpointState.ACTIVE);
+ assertEndpointState(session, EndpointState.ACTIVE, EndpointState.ACTIVE);
+
+ assertEquals("Expected the sender to have credit", credit, sender.getCredit());
+
+ Delivery delivery = sendMessage(sender, "tag1", "content1");
+
+ assertEquals("Expected the delivery to be on the transport work list", delivery, connection.getTransportWorkHead());
+ assertEquals("Expected the sender to have 1 less credit", credit -1 , sender.getCredit());
+
+ pumpMockTransport(transport);
+
+ assertEquals("Unexpected frames written: " + getFrameTypesWritten(transport), 4, transport.writes.size());
+ assertTrue("Unexpected frame type", transport.writes.get(3) instanceof Transfer);
+
+ assertNull("Expected the delivery to cleared from the transport work list", connection.getTransportWorkHead());
+
+ session.close();
+
+ pumpMockTransport(transport);
+
+ assertEquals("Unexpected frames written: " + getFrameTypesWritten(transport), 5, transport.writes.size());
+ assertTrue("Unexpected frame type", transport.writes.get(4) instanceof End);
+
+ assertNull("Expected the transport work list to be empty", connection.getTransportWorkHead());
+ assertEndpointState(session, EndpointState.CLOSED, EndpointState.ACTIVE);
+
+ // Send the necessary responses to End
+ End end = new End();
+ transport.handleFrame(new TransportFrame(0, end, null));
+
+ assertEndpointState(session, EndpointState.CLOSED, EndpointState.CLOSED);
+
+ assertNull("Expected the transport work list to be empty", connection.getTransportWorkHead());
+
+ session.free();
+
+ pumpMockTransport(transport);
+
+ assertNull("Expected the transport work list to be empty", connection.getTransportWorkHead());
+ assertEquals("Unexpected frames written: " + getFrameTypesWritten(transport), 5, transport.writes.size());
+
+ connection.close();
+ pumpMockTransport(transport);
+
+ assertEquals("Unexpected frames written: " + getFrameTypesWritten(transport), 6, transport.writes.size());
+ assertTrue("Unexpected frame type", transport.writes.get(5) instanceof Close);
+ }
+
+ /**
+ * Verify that the transport work list doesnt retain delivery (+link+session) object when a sender link is closed
+ * closed and freed while there a buffered/not-transferred message outstanding, as they can no longer be transferred.
+ */
+ @Test
+ public void testTransportWorkListDoesntLeakDeliveriesEtcFromSenderLinkFreedWithBufferedSend()
+ {
+ MockTransportImpl transport = new MockTransportImpl();
+ ConnectionImpl connection = new ConnectionImpl();
+ transport.bind(connection);
+
+ connection.open();
+
+ Session session = connection.session();
+ session.open();
+
+ String linkName = "myClientSender";
+ Sender sender = session.sender(linkName);
+ sender.open();
+
+ pumpMockTransport(transport);
+
+ assertEquals("Unexpected frames written: " + getFrameTypesWritten(transport), 3, transport.writes.size());
+
+ assertTrue("Unexpected frame type", transport.writes.get(0) instanceof Open);
+ assertTrue("Unexpected frame type", transport.writes.get(1) instanceof Begin);
+ assertTrue("Unexpected frame type", transport.writes.get(2) instanceof Attach);
+
+ assertNull("Should not yet have a delivery", sender.current());
+
+ // Send the necessary responses to open/begin/attach. DO NOT give any credit.
+ transport.handleFrame(new TransportFrame(0, new Open(), null));
+
+ Begin begin = new Begin();
+ begin.setRemoteChannel(UnsignedShort.valueOf((short) 0));
+ begin.setNextOutgoingId(UnsignedInteger.ONE);
+ begin.setIncomingWindow(UnsignedInteger.valueOf(1024));
+ begin.setOutgoingWindow(UnsignedInteger.valueOf(1024));
+ transport.handleFrame(new TransportFrame(0, begin, null));
+
+ Attach attach = new Attach();
+ attach.setHandle(UnsignedInteger.ZERO);
+ attach.setRole(Role.RECEIVER);
+ attach.setName(linkName);
+ attach.setInitialDeliveryCount(UnsignedInteger.ZERO);
+ transport.handleFrame(new TransportFrame(0, attach, null));
+
+ assertEndpointState(sender, EndpointState.ACTIVE, EndpointState.ACTIVE);
+ assertEndpointState(session, EndpointState.ACTIVE, EndpointState.ACTIVE);
+
+ assertEquals("Expected the sender to have no credit", 0, sender.getCredit());
+
+ Delivery delivery = sendMessage(sender, "tag1", "content1");
+
+ assertEquals("Expected the delivery to be on the transport work list", delivery, connection.getTransportWorkHead());
+ assertEquals("Expected the sender to have queued message", 1 , sender.getQueued());
+
+ pumpMockTransport(transport);
+
+ // Expect no more frames to have been sent, delivery cant be sent without credit
+ assertEquals("Unexpected frames written: " + getFrameTypesWritten(transport), 3, transport.writes.size());
+
+ assertEquals("Expected the delivery to be on the transport work list", delivery, connection.getTransportWorkHead());
+
+ // Send a remote request to close the sender and action it
+ Detach detach = new Detach();
+ detach.setHandle(UnsignedInteger.ZERO);
+ detach.setClosed(true);
+ transport.handleFrame(new TransportFrame(0, detach, null));
+
+ assertEndpointState(sender, EndpointState.ACTIVE, EndpointState.CLOSED);
+
+ sender.close();
+ sender.free();
+
+ pumpMockTransport(transport);
+
+ assertEndpointState(sender, EndpointState.CLOSED, EndpointState.CLOSED);
+
+ assertEquals("Unexpected frames written: " + getFrameTypesWritten(transport), 4, transport.writes.size());
+ assertTrue("Unexpected frame type", transport.writes.get(3) instanceof Detach);
+
+ // Check the delivery isnt in the work list as it clearly cant be sent now the sender is closed.
+ assertNull("Expected the transport work list to be empty", connection.getTransportWorkHead());
+ }
}
=====================================
tests/performance-jmh/pom.xml
=====================================
@@ -19,7 +19,7 @@
<parent>
<groupId>org.apache.qpid</groupId>
<artifactId>proton-j-parent</artifactId>
- <version>0.34.0</version>
+ <version>0.34.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
=====================================
tests/pom.xml
=====================================
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.qpid</groupId>
<artifactId>proton-j-parent</artifactId>
- <version>0.34.0</version>
+ <version>0.34.1</version>
</parent>
<artifactId>proton-tests</artifactId>
View it on GitLab: https://salsa.debian.org/java-team/qpid-proton-j/-/compare/fc4427f3991ebaafbb428a5baf1f682d37b7a00d...6faba4b1477fe79ef03a4402851dd47d364680dd
--
View it on GitLab: https://salsa.debian.org/java-team/qpid-proton-j/-/compare/fc4427f3991ebaafbb428a5baf1f682d37b7a00d...6faba4b1477fe79ef03a4402851dd47d364680dd
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20251130/662ab13d/attachment.htm>
More information about the pkg-java-commits
mailing list