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]

Reply via email to