Rafael H. Schloming commented on PROTON-1:

Ok, going over this one with a less congested head, I've noticed an issue. The 
%contract stuff is great for making exceptions occur, but at least for things 
like checking return error codes it seems to swallow the actual reason for the 
exception, e.g.:

    File "/home/rhs/bin/proton-test", line 331, in run
    File "/home/rhs/proton/tests/proton_tests/messenger.py", line 93, in 
      pn_messenger_put(self.client, msg)
  RuntimeError: Contract violation: ensure: (result==0)

I think this is a problem given that things like, pn_messenger_send returns an 
error code which indicates what has actually gone wrong, and there is a big 
difference between say a PN_TIMEOUT (indicates that send has blocked for longer 
than the timeout set for the messenger, not necessarily an error per/se), and 
PN_STATE_ERR, (indicates the messenger is in some kind of illegal state).
> Provides %contract assurances in the swig layer for language bindings.
> ----------------------------------------------------------------------
>                 Key: PROTON-1
>                 URL: https://issues.apache.org/jira/browse/PROTON-1
>             Project: Qpid Proton
>          Issue Type: Bug
>            Reporter: Darryl L. Pierce
>         Attachments: 
> 0001-Provides-contract-guarantees-to-language-bindings.patch
> This patch provides %contract assurances for the Proton APIs, defining the 
> pre- and post-conditions for the APIs. For any language binding, when such a 
> condition is not met then a runtime exception is raised.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to