Uploaded image for project: 'Qpid Proton'
  1. Qpid Proton
  2. PROTON-2251

[python binding] MessagingHandler release function does not release message

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • proton-c-0.31.0
    • None
    • python-binding
    • None
    • Proton master@4a22a; Python 3.7.7; Fedora 31

    Description

      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:

      > python helloworld_direct.py 
      Hello World!
      Releasing that message
      on_accepted
      

      The source is

      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()
      

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            chug Charles E. Rolke
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: