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/23 16:44:39 UTC
[bookkeeper] branch master updated: Remove LedgerMetadata copy
constructor
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 4d3ffae Remove LedgerMetadata copy constructor
4d3ffae is described below
commit 4d3ffae69e96a0ed9b1fe68c43c5192565f56f1b
Author: Ivan Kelly <iv...@apache.org>
AuthorDate: Fri Nov 23 16:44:35 2018 +0000
Remove LedgerMetadata copy constructor
A copy constructor makes no sense when it's not possible to mutate the object.
Master issue: #281
Reviewers: Enrico Olivelli <eo...@gmail.com>
This closes #1832 from ivankelly/kill-copy
---
.../apache/bookkeeper/client/LedgerMetadata.java | 30 ----------------------
.../apache/bookkeeper/client/LedgerRecoveryOp.java | 2 +-
.../bookkeeper/client/MockBookKeeperTestCase.java | 4 +--
3 files changed, 3 insertions(+), 33 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 4f67077..6094df2 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
@@ -152,36 +152,6 @@ public class LedgerMetadata implements org.apache.bookkeeper.client.api.LedgerMe
this.customMetadata.putAll(customMetadata);
}
- /**
- * Copy Constructor.
- */
- LedgerMetadata(LedgerMetadata other) {
- this.ensembleSize = other.ensembleSize;
- this.writeQuorumSize = other.writeQuorumSize;
- this.ackQuorumSize = other.ackQuorumSize;
- this.length = other.length;
- this.lastEntryId = other.lastEntryId;
- this.metadataFormatVersion = other.metadataFormatVersion;
- this.state = other.state;
- this.hasPassword = other.hasPassword;
- this.digestType = other.digestType;
- this.ctime = other.ctime;
- this.storeCtime = other.storeCtime;
- this.password = new byte[other.password.length];
- System.arraycopy(other.password, 0, this.password, 0, other.password.length);
- this.ensembles = Collections.unmodifiableNavigableMap(
- other.ensembles.entrySet().stream().collect(TreeMap::new,
- (m, e) -> m.put(e.getKey(),
- ImmutableList.copyOf(e.getValue())),
- TreeMap::putAll));
- if (state != LedgerMetadataFormat.State.CLOSED) {
- currentEnsemble = this.ensembles.lastEntry().getValue();
- } else {
- currentEnsemble = null;
- }
- this.customMetadata = other.customMetadata;
- }
-
@Override
public NavigableMap<Long, ? extends List<BookieSocketAddress>> getAllEnsembles() {
return ensembles;
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerRecoveryOp.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerRecoveryOp.java
index 923c4df..bc2985a 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerRecoveryOp.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerRecoveryOp.java
@@ -104,7 +104,7 @@ class LedgerRecoveryOp implements ReadEntryListener, AddCallback {
}
// keep a copy of ledger metadata before proceeding
// ledger recovery
- metadataForRecovery = new LedgerMetadata(lh.getLedgerMetadata());
+ metadataForRecovery = lh.getLedgerMetadata();
doRecoveryRead();
} else if (rc == BKException.Code.UnauthorizedAccessException) {
submitCallback(rc);
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/MockBookKeeperTestCase.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/MockBookKeeperTestCase.java
index e808078..a88f356 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/MockBookKeeperTestCase.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/MockBookKeeperTestCase.java
@@ -372,7 +372,7 @@ public abstract class MockBookKeeperTestCase {
if (ledgerMetadata == null) {
promise.completeExceptionally(new BKException.BKNoSuchLedgerExistsException());
} else {
- promise.complete(new Versioned<>(new LedgerMetadata(ledgerMetadata), new LongVersion(1)));
+ promise.complete(new Versioned<>(ledgerMetadata, new LongVersion(1)));
}
});
return promise;
@@ -426,7 +426,7 @@ public abstract class MockBookKeeperTestCase {
executor.executeOrdered(ledgerId, () -> {
LedgerMetadata ledgerMetadata = (LedgerMetadata) args[1];
- mockLedgerMetadataRegistry.put(ledgerId, new LedgerMetadata(ledgerMetadata));
+ mockLedgerMetadataRegistry.put(ledgerId, ledgerMetadata);
promise.complete(new Versioned<>(ledgerMetadata, new LongVersion(1)));
});
return promise;