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)