Charles E. Rolke created PROTON-2251:
----------------------------------------
Summary: [python binding] MessagingHandler release function does
not release message
Key: PROTON-2251
URL: https://issues.apache.org/jira/browse/PROTON-2251
Project: Qpid Proton
Issue Type: Bug
Components: python-binding
Affects Versions: proton-c-0.31.0
Environment: Proton master@4a22a; Python 3.7.7; Fedora 31
Reporter: Charles E. Rolke
Documentation suggests that in a MessagingHandler on_message callback the user
may call `self.release(event.delivery)` to release the message. Using this
function the messages are still accepted. A modified helloworld_direct.py
output is:
{code:java}
> python helloworld_direct.py
Hello World!
Releasing that message
on_accepted
{code}
The source is
{code:java}
from __future__ import print_function, unicode_literals
from proton import Message
from proton.handlers import MessagingHandler
from proton.reactor import Container
class HelloWorld(MessagingHandler):
def __init__(self, url):
super(HelloWorld, self).__init__()
self.url = url
self.sent = False
def on_start(self, event):
self.acceptor = event.container.listen(self.url)
event.container.create_sender(self.url)
def on_sendable(self, event):
if not self.sent:
self.sent = True
event.sender.send(Message(body="Hello World!"))
def on_message(self, event):
print(event.message.body)
print("Releasing that message")
self.release(event.delivery)
def on_accepted(self, event):
print("on_accepted")
event.connection.close()
def on_released(self, event):
print("on_released")
event.connection.close()
def on_connection_closed(self, event):
self.acceptor.close()
Container(HelloWorld("localhost:8888/examples")).run()
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]