[
https://issues.apache.org/jira/browse/PROTON-2251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17156896#comment-17156896
]
Gordon Sim commented on PROTON-2251:
------------------------------------
As a workaround you can {{'raise Released()'}} instead of invoking the
{{release()}} method
> [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
> Priority: Major
>
> 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]