[
https://issues.apache.org/jira/browse/ZOOKEEPER-2636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Flavio Junqueira resolved ZOOKEEPER-2636.
-----------------------------------------
Resolution: Fixed
+1, thanks for fixing this so swiftly [~hanm].
> Fix C build break.
> ------------------
>
> Key: ZOOKEEPER-2636
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2636
> Project: ZooKeeper
> Issue Type: Bug
> Components: jute
> Affects Versions: 3.5.3
> Reporter: Michael Han
> Assignee: Michael Han
> Priority: Blocker
> Fix For: 3.5.3, 3.6.0
>
>
> C client build is broken after ZOOKEEPER-2628 is merged in. After a little
> debug, I find out that the build is broken because the zookeeper.jute.h and
> zookeeper.jute.c are not completely generated.
> * The culprit is the code change introduced in ZOOKEEPER-2628, where we wraps
> {code}JRecord.genCCode{code} with a try / catch / finally block and the file
> writers were prematurely closed in finally block which prevents remaining of
> the zookeeper.jute.h/c file being generated.
> * The fix to {code}JRecord.genCCode{code} in ZOOKEEPER-2628 was made because
> a find bug warning was directly associated with the code. Due to the subtlety
> of the file writer ownership, we did not capture the issue during code
> review.
> * The build break was not captured in pre-commit builds as well ([an
> example|https://builds.apache.org/job/PreCommit-ZOOKEEPER-github-pr-build/72//console]),
> where we get all tests passed including C client tests. I suspect we might
> have another bug with cached generated files that should be regenerated but
> we don't - need more investigation on this one.
> * The fix is simple by revert the change to this specific method. Findbug
> does not complain anymore because the previous warning that appertain to this
> code block was fixed at the call site of {code}JRecord.genCCode{code}. So by
> reverting the change we still have zero find bug warnings.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)