GitHub user gemmellr opened a pull request:
https://github.com/apache/qpid-proton/pull/20
PROTON-848-and-849: stop leaking the transport state
Stops leaking the transport state by removing the maps storing the
TransportSession or TransportLink objects, instead using the references set on
the associated Session and Link objects at the time they would have been
entered into the maps. Not much to that bit.
The bulk of the annoyance came from some tests failing after those changes
due to alteration of the events being emitted when calling free+unbind on the
connection+transport. Much debugging suggested this was possibly as result of
existing differences in behaviour (mainly that things were not showing FINAL
events until the unbind step in proton-j, unlike proton-c) which just happened
to become more visible following my modifications. After looking at some of the
differences between proton-c and proton-j's session+link reference handling I
made some alterations to have it act more like proton-c, which fixed the
earlier test failures, however I'd like a second opinion from someone who
actually understands what this stuff is meant to do :)
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/gemmellr/qpid-proton PROTON-848-and-849
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/qpid-proton/pull/20.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #20
commit 4c5fdd045c6278c344ad5e2b044eabcd357fcf50
Author: Robert Gemmell
Date: 2015-04-20T09:21:11Z
PROTON-848, PROTON-849: dont store the TransportSession or TransportLink
state in maps, use the references set on the associated Session and Link
objects. Update channel+link reference handling to behave more like proton-c in
order to resolve the resulting test failures.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---