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.

Reply via email to