You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@zookeeper.apache.org by "Damien Diederen (Jira)" <ji...@apache.org> on 2020/11/17 17:39:00 UTC
[jira] [Resolved] (ZOOKEEPER-4000) use the computeIfAbsent to
simplify the Leader#processSync method
[ https://issues.apache.org/jira/browse/ZOOKEEPER-4000?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Damien Diederen resolved ZOOKEEPER-4000.
----------------------------------------
Resolution: Fixed
Issue resolved by pull request 1538
[https://github.com/apache/zookeeper/pull/1538]
> use the computeIfAbsent to simplify the Leader#processSync method
> -----------------------------------------------------------------
>
> Key: ZOOKEEPER-4000
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-4000
> Project: ZooKeeper
> Issue Type: Improvement
> Components: server
> Reporter: maoling
> Priority: Minor
> Labels: pull-request-available
> Fix For: 3.7.0
>
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> Look at the *Leader#processSync* method:
> {code:java}
> public synchronized void processSync(LearnerSyncRequest r) {
> if (outstandingProposals.isEmpty()) {
> sendSync(r);
> } else {
> List<LearnerSyncRequest> l = pendingSyncs.get(lastProposed);
> if (l == null) {
> l = new ArrayList<LearnerSyncRequest>();
> }
> l.add(r);
> pendingSyncs.put(lastProposed, l);
> }
> }
> {code}
> we can use theĀ *computeIfAbsent* to make the code more clean and elegant. For example(just one line code):
> {code:java}
> pendingSyncs.computeIfAbsent(lastProposed, k -> new ArrayList<>()).add(r);
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)