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)));
+  }
 }

Reply via email to