[ 
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: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to