You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by iv...@apache.org on 2018/11/22 17:45:53 UTC
[bookkeeper] branch master updated: Make most LedgerMetadata fields
final
This is an automated email from the ASF dual-hosted git repository.
ivank pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
The following commit(s) were added to refs/heads/master by this push:
new 10df5e7 Make most LedgerMetadata fields final
10df5e7 is described below
commit 10df5e7f0f5b6554844f378757edd24e1f3b2fab
Author: Ivan Kelly <iv...@apache.org>
AuthorDate: Thu Nov 22 17:45:48 2018 +0000
Make most LedgerMetadata fields final
Make most fields in LedgerMetadata final. The ones which I have not
changed in this patch require a more involved change, so they'll come
in separate PRs.
Master issue: #281
Reviewers: Enrico Olivelli <eo...@gmail.com>
This closes #1828 from ivankelly/mostly-final
---
.../apache/bookkeeper/client/LedgerMetadata.java | 30 ++++++++++++----------
1 file changed, 16 insertions(+), 14 deletions(-)
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java
index 5fd5f06..026cc97 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java
@@ -72,22 +72,22 @@ public class LedgerMetadata implements org.apache.bookkeeper.client.api.LedgerMe
public static final int CURRENT_METADATA_FORMAT_VERSION = 2;
public static final String VERSION_KEY = "BookieMetadataFormatVersion";
- private int metadataFormatVersion = 0;
- private int ensembleSize;
- private int writeQuorumSize;
- private int ackQuorumSize;
+ private final int metadataFormatVersion;
+ private final int ensembleSize;
+ private final int writeQuorumSize;
+ private final int ackQuorumSize;
private long length;
private long lastEntryId;
- private long ctime;
- boolean storeCtime; // non-private so builder can access for copy
+ private final long ctime;
+ final boolean storeCtime; // non-private so builder can access for copy
private LedgerMetadataFormat.State state;
private TreeMap<Long, ImmutableList<BookieSocketAddress>> ensembles = new TreeMap<>();
private List<BookieSocketAddress> currentEnsemble;
- private boolean hasPassword = false;
- private LedgerMetadataFormat.DigestType digestType;
- private byte[] password;
+ private final boolean hasPassword; // IKTODO other things should be optionals instead
+ private final LedgerMetadataFormat.DigestType digestType;
+ private final byte[] password;
private Map<String, byte[]> customMetadata = Maps.newHashMap();
@@ -126,11 +126,13 @@ public class LedgerMetadata implements org.apache.bookkeeper.client.api.LedgerMe
this.digestType = digestType.equals(DigestType.MAC)
? LedgerMetadataFormat.DigestType.HMAC : LedgerMetadataFormat.DigestType.valueOf(digestType.toString());
- password.ifPresent((pw) -> {
- this.password = pw;
- this.hasPassword = true;
- });
-
+ if (password.isPresent()) {
+ this.password = password.get();
+ this.hasPassword = true;
+ } else {
+ this.password = null;
+ this.hasPassword = false;
+ }
this.ctime = ctime;
this.storeCtime = storeCtime;