Repository: zookeeper Updated Branches: refs/heads/branch-3.4 dabcdc175 -> cbbdcc328
ZOOKEEPER-3027: Accidently removed public API of FileTxnLog.setPreallocSize() In my latest commit regarding TxnLogToolkit there's a refactor to outsource file padding logic from FileTxnLog to a separate class: https://github.com/apache/zookeeper/commit/126fb0f22d701cad58bf3123bf7d8f2219e60387#diff-89717124564925d61d29dd817bcdd915L147 Unfortunately public static method setPreallocSize(int) has also been moved to the new class, but it's being actively used by hadoop-common project too: https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/ClientBaseWithFixes.java#L384 I'd like to submit a patch to revert the deleted method which is going to call the new one, but will keep backward compatibility with Hadoop. Author: Andor Molnar <[email protected]> Reviewers: [email protected] Closes #509 from anmolnar/ZOOKEEPER-3027 Change-Id: I7333b5e24c2a78d10a5c5a74c181633050bd225d (cherry picked from commit 5c96887643b2465caabbfd4763c7ebb3cd1aa024) Signed-off-by: Patrick Hunt <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/zookeeper/repo Commit: http://git-wip-us.apache.org/repos/asf/zookeeper/commit/cbbdcc32 Tree: http://git-wip-us.apache.org/repos/asf/zookeeper/tree/cbbdcc32 Diff: http://git-wip-us.apache.org/repos/asf/zookeeper/diff/cbbdcc32 Branch: refs/heads/branch-3.4 Commit: cbbdcc328d66db86c197a87560da42afaa88ccbb Parents: dabcdc1 Author: Andor Molnar <[email protected]> Authored: Fri Apr 27 11:28:15 2018 -0700 Committer: Patrick Hunt <[email protected]> Committed: Fri Apr 27 11:33:57 2018 -0700 ---------------------------------------------------------------------- .../apache/zookeeper/server/persistence/FilePadding.java | 7 +++++++ .../apache/zookeeper/server/persistence/FileTxnLog.java | 11 ++++++++++- .../zookeeper/server/persistence/FileTxnLogTest.java | 10 ++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cbbdcc32/src/java/main/org/apache/zookeeper/server/persistence/FilePadding.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/zookeeper/server/persistence/FilePadding.java b/src/java/main/org/apache/zookeeper/server/persistence/FilePadding.java index c4052e9..49fde24 100644 --- a/src/java/main/org/apache/zookeeper/server/persistence/FilePadding.java +++ b/src/java/main/org/apache/zookeeper/server/persistence/FilePadding.java @@ -46,6 +46,13 @@ public class FilePadding { private long currentSize; /** + * Getter of preAllocSize has been added for testing + */ + public static long getPreAllocSize() { + return preAllocSize; + } + + /** * method to allow setting preallocate size * of log file to pad the file. * http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cbbdcc32/src/java/main/org/apache/zookeeper/server/persistence/FileTxnLog.java ---------------------------------------------------------------------- diff --git a/src/java/main/org/apache/zookeeper/server/persistence/FileTxnLog.java b/src/java/main/org/apache/zookeeper/server/persistence/FileTxnLog.java index 15c7211..1546e7d 100644 --- a/src/java/main/org/apache/zookeeper/server/persistence/FileTxnLog.java +++ b/src/java/main/org/apache/zookeeper/server/persistence/FileTxnLog.java @@ -134,7 +134,16 @@ public class FileTxnLog implements TxnLog { } /** - * creates a checksum alogrithm to be used + * method to allow setting preallocate size + * of log file to pad the file. + * @param size the size to set to in bytes + */ + public static void setPreallocSize(long size) { + FilePadding.setPreallocSize(size); + } + + /** + * creates a checksum algorithm to be used * @return the checksum used for this txnlog */ protected Checksum makeChecksumAlgorithm(){ http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cbbdcc32/src/java/test/org/apache/zookeeper/server/persistence/FileTxnLogTest.java ---------------------------------------------------------------------- diff --git a/src/java/test/org/apache/zookeeper/server/persistence/FileTxnLogTest.java b/src/java/test/org/apache/zookeeper/server/persistence/FileTxnLogTest.java index 97cbc37..32001ae 100644 --- a/src/java/test/org/apache/zookeeper/server/persistence/FileTxnLogTest.java +++ b/src/java/test/org/apache/zookeeper/server/persistence/FileTxnLogTest.java @@ -31,6 +31,9 @@ import java.io.File; import java.io.IOException; import java.util.Arrays; +import static org.hamcrest.core.Is.is; +import static org.hamcrest.core.IsEqual.equalTo; + public class FileTxnLogTest extends ZKTestCase { protected static final Logger LOG = LoggerFactory.getLogger(FileTxnLogTest.class); @@ -98,4 +101,11 @@ public class FileTxnLogTest extends ZKTestCase { createTxn = (CreateTxn) fileTxnIterator.getTxn(); Assert.assertTrue(Arrays.equals(createTxn.getData(), new byte[]{})); } + + @Test + public void testSetPreallocSize() { + long customPreallocSize = 10101; + FileTxnLog.setPreallocSize(customPreallocSize); + Assert.assertThat(FilePadding.getPreAllocSize(), is(equalTo(customPreallocSize))); + } }
