summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortison <wander4096@gmail.com>2023-03-26 20:20:58 +0800
committerGitHub <noreply@github.com>2023-03-26 14:20:58 +0200
commit3eda8a3a00ef3230d6c16f6ddf9201a3c0f5ca07 (patch)
tree8bd9dc5a6fb8819d57ac8ac13a5cd4ec0016c34d
parente50a0bbae1bc0b812ac2656f5ba3f9eab7c3d62e (diff)
downloadzookeeper-3eda8a3a00ef3230d6c16f6ddf9201a3c0f5ca07.tar.gz
ZOOKEEPER-4682. Make FileSnap.deserialize a static method (#1992)
FileSnap.deserialize is effectively a static method. Change it to a static method so that we don't need to do some new FileSnap(null) hacks for workaround calling this method. Signed-off-by: tison <wander4096@gmail.com>
-rw-r--r--zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotComparer.java3
-rw-r--r--zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotFormatter.java4
-rw-r--r--zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotRecursiveSummary.java5
-rw-r--r--zookeeper-server/src/main/java/org/apache/zookeeper/server/ZKDatabase.java3
-rw-r--r--zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/FileSnap.java5
-rw-r--r--zookeeper-server/src/test/java/org/apache/zookeeper/server/CRCTest.java12
6 files changed, 13 insertions, 19 deletions
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotComparer.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotComparer.java
index bb6a45db8..7bbb773fa 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotComparer.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotComparer.java
@@ -259,14 +259,13 @@ public class SnapshotComparer {
* @throws Exception
*/
private static DataTree getSnapshot(File file) throws Exception {
- FileSnap fileSnap = new FileSnap(null);
DataTree dataTree = new DataTree();
Map<Long, Integer> sessions = new HashMap<>();
CheckedInputStream snapIS = SnapStream.getInputStream(file);
long beginning = System.nanoTime();
InputArchive ia = BinaryInputArchive.getArchive(snapIS);
- fileSnap.deserialize(dataTree, sessions, ia);
+ FileSnap.deserialize(dataTree, sessions, ia);
long end = System.nanoTime();
System.out.println(String.format("Deserialized snapshot in %s in %f seconds", file.getName(),
(((double) (end - beginning) / 1000000)) / 1000));
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotFormatter.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotFormatter.java
index 4ad590c99..c7791dafb 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotFormatter.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotFormatter.java
@@ -96,12 +96,10 @@ public class SnapshotFormatter {
try (InputStream is = SnapStream.getInputStream(snapshotFile)) {
InputArchive ia = BinaryInputArchive.getArchive(is);
- FileSnap fileSnap = new FileSnap(null);
-
DataTree dataTree = new DataTree();
Map<Long, Integer> sessions = new HashMap<>();
- fileSnap.deserialize(dataTree, sessions, ia);
+ FileSnap.deserialize(dataTree, sessions, ia);
long fileNameZxid = Util.getZxidFromName(snapshotFile.getName(), SNAPSHOT_FILE_PREFIX);
if (dumpJson) {
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotRecursiveSummary.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotRecursiveSummary.java
index 444783166..c0a66de77 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotRecursiveSummary.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotRecursiveSummary.java
@@ -67,12 +67,9 @@ import org.apache.zookeeper.server.persistence.SnapStream;
try (InputStream is = SnapStream.getInputStream(snapshotFile)) {
InputArchive ia = BinaryInputArchive.getArchive(is);
- FileSnap fileSnap = new FileSnap(null);
-
DataTree dataTree = new DataTree();
Map<Long, Integer> sessions = new HashMap<>();
-
- fileSnap.deserialize(dataTree, sessions, ia);
+ FileSnap.deserialize(dataTree, sessions, ia);
printZnodeDetails(dataTree, startingNode, maxDepth);
}
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZKDatabase.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZKDatabase.java
index a8729841c..b50d00bab 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZKDatabase.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZKDatabase.java
@@ -637,8 +637,7 @@ public class ZKDatabase {
// deserialize data tree
final DataTree dataTree = getDataTree();
- final FileSnap filesnap = new FileSnap(snapLog.getSnapDir());
- filesnap.deserialize(dataTree, getSessionWithTimeOuts(), ia);
+ FileSnap.deserialize(dataTree, getSessionWithTimeOuts(), ia);
SnapStream.checkSealIntegrity(is, ia);
// deserialize digest and check integrity
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/FileSnap.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/FileSnap.java
index 55e7f723f..cb7efc403 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/FileSnap.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/persistence/FileSnap.java
@@ -26,6 +26,7 @@ import java.util.List;
import java.util.Map;
import java.util.zip.CheckedInputStream;
import java.util.zip.CheckedOutputStream;
+import javax.annotation.Nonnull;
import org.apache.jute.BinaryInputArchive;
import org.apache.jute.BinaryOutputArchive;
import org.apache.jute.InputArchive;
@@ -53,7 +54,7 @@ public class FileSnap implements SnapShot {
public static final String SNAPSHOT_FILE_PREFIX = "snapshot";
- public FileSnap(File snapDir) {
+ public FileSnap(@Nonnull File snapDir) {
this.snapDir = snapDir;
}
@@ -131,7 +132,7 @@ public class FileSnap implements SnapShot {
* @param ia the input archive to restore from
* @throws IOException
*/
- public void deserialize(DataTree dt, Map<Long, Integer> sessions, InputArchive ia) throws IOException {
+ public static void deserialize(DataTree dt, Map<Long, Integer> sessions, InputArchive ia) throws IOException {
FileHeader header = new FileHeader();
header.deserialize(ia, "fileheader");
if (header.getMagic() != SNAP_MAGIC) {
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/CRCTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/CRCTest.java
index 2d94d2ba4..37e9b78ab 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/CRCTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/CRCTest.java
@@ -70,14 +70,14 @@ public class CRCTest extends ZKTestCase {
}
/** return if checksum matches for a snapshot **/
- private boolean getCheckSum(FileSnap snap, File snapFile) throws IOException {
+ private boolean getCheckSum(File snapFile) throws IOException {
DataTree dt = new DataTree();
Map<Long, Integer> sessions = new ConcurrentHashMap<>();
InputStream snapIS = new BufferedInputStream(new FileInputStream(snapFile));
CheckedInputStream crcIn = new CheckedInputStream(snapIS, new Adler32());
InputArchive ia = BinaryInputArchive.getArchive(crcIn);
try {
- snap.deserialize(dt, sessions, ia);
+ FileSnap.deserialize(dt, sessions, ia);
} catch (IOException ie) {
// we failed on the most recent snapshot
// must be incomplete
@@ -154,16 +154,16 @@ public class CRCTest extends ZKTestCase {
List<File> snapFiles = snap.findNRecentSnapshots(2);
snapFile = snapFiles.get(0);
corruptFile(snapFile);
- boolean cfile = false;
+ boolean cfile;
try {
- cfile = getCheckSum(snap, snapFile);
+ cfile = getCheckSum(snapFile);
} catch (IOException ie) {
- //the last snapshot seems incompelte
+ //the last snapshot seems incomplete
// corrupt the last but one
// and use that
snapFile = snapFiles.get(1);
corruptFile(snapFile);
- cfile = getCheckSum(snap, snapFile);
+ cfile = getCheckSum(snapFile);
}
assertTrue(cfile);
}