zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Patrick Hunt (JIRA)" <j...@apache.org>
Subject [jira] Reopened: (ZOOKEEPER-510) zkpython lumps all exceptions as IOError, needs specialized exceptions for KeeperException types
Date Fri, 09 Oct 2009 04:38:31 GMT

     [ https://issues.apache.org/jira/browse/ZOOKEEPER-510?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Patrick Hunt reopened ZOOKEEPER-510:
------------------------------------


Unless I'm missing something there's a problem with this patch, the following is incorrect
according to the python manual:

+#define ADD_EXCEPTION(x) x = PyErr_NewException("zookeeper."#x, ZooKeeperException, NULL);
\
+  PyModule_AddObject(module, #x, x);

specifically the ref is not being incremented.

see this example in the following python man page:
http://docs.python.org/extending/extending.html#intermezzo-errors-and-exceptions

    SpamError = PyErr_NewException("spam.error", NULL, NULL);
    Py_INCREF(SpamError);
    PyModule_AddObject(m, "error", SpamError);



> zkpython lumps all exceptions as IOError, needs specialized exceptions for KeeperException
types
> ------------------------------------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-510
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-510
>             Project: Zookeeper
>          Issue Type: Bug
>          Components: contrib-bindings
>    Affects Versions: 3.2.0
>            Reporter: Patrick Hunt
>            Assignee: Henry Robinson
>             Fix For: 3.3.0
>
>         Attachments: ZOOKEEPER-510.patch, ZOOKEEPER-510.patch, ZOOKEEPER-510.patch, ZOOKEEPER-510.patch
>
>
> The current zkpython bindings always throw "IOError("text")" exceptions, even for ZK
specific exceptions such as NODEEXISTS. This makes it difficult (error prone) to handle exceptions
in python code. You can't easily pickup a connection loss vs a node exists for example. Of
course you could match the error string, but this seems like a bad idea imo.
> We need to add specific exception types to the python binding that map directly to KeeperException/java
types. It would also be useful to include the information provided by the KeeperException
(like path in some cases), etc... as part of the error thrown to the python code. Would probably
be a good idea to stay as close to java api as possible wrt mapping the errors.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message