hadoop-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] Updated: (ZOOKEEPER-246) review error code definition in both source and docs
Date Fri, 05 Dec 2008 06:22:44 GMT

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

Patrick Hunt updated ZOOKEEPER-246:

    Attachment: ZOOKEEPER-246.patch

Take a look at this patch.

1) I updated forrest docs, javadoc and doxygen (c) doc
2) in c I updated the constants to be non-calculated enum values
this resulted in b/w compatible code, except for the extreme case where the type was specifically
tested (changed from int to ZOO_ERROR type), which only was an issue with our CPPUNIT_ASSERT_EQUAL
tests - zkfuse client compiled w/o issue. I think this is acceptable, we should release note
but not consider this as b/w incompatible change.
3) in java I 
a) deprecated all of the orig int constants (KeeperException.Code class), javadoc points to
new constants
b) added new enum constants as non-calc values, names are the same except they are all caps
c) deprecated getCode() in KeeperException  and replaced with code(), return values changed
from int to Code

d) I did _not_ change the callbacks, we could do that, but it would be alot of work. ie deprecate
the orig callbacks/methods which take these callbacks, and replace them with new versions.

> review error code definition in both source and docs
> ----------------------------------------------------
>                 Key: ZOOKEEPER-246
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-246
>             Project: Zookeeper
>          Issue Type: Improvement
>          Components: c client, documentation, java client
>    Affects Versions: 3.0.0, 3.0.1
>            Reporter: Patrick Hunt
>            Assignee: Patrick Hunt
>            Priority: Minor
>             Fix For: 3.1.0
>         Attachments: ZOOKEEPER-246.patch
> A number of users have mentioned that our use of "calculated" values for error codes
makes it very difficult to track error reports from the logs.  In both c/java we have:
> int ERROR = 100
> int X_ERROR= ERROR + 1
> int Y_ERROR= ERROR + 2
> etc...
> which makes it difficult to grep/search for "101" and find these references. A number
of users have mentioned that having non-calculated values (ie X_ERROR=101) would make it easier.

> I personally find calculated constants like this an anti-pattern.
> We should convert these values to non-calculated at a minimum, perhaps even redefine
them as enums if possible.
> Also documentation, esp in the c code (the names btw c and java don't match btw) is lacking.
We need to beef up docs in this area.

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

View raw message