use of java.util.zip.CheckedInputStream in project zookeeper by apache.
the class FileSnap method deserialize.
/**
* deserialize a data tree from the most recent snapshot
* @return the zxid of the snapshot
*/
public long deserialize(DataTree dt, Map<Long, Integer> sessions) throws IOException {
// we run through 100 snapshots (not all of them)
// if we cannot get it running within 100 snapshots
// we should give up
List<File> snapList = findNValidSnapshots(100);
if (snapList.size() == 0) {
return -1L;
}
File snap = null;
boolean foundValid = false;
for (int i = 0; i < snapList.size(); i++) {
snap = snapList.get(i);
InputStream snapIS = null;
CheckedInputStream crcIn = null;
try {
LOG.info("Reading snapshot " + snap);
snapIS = new BufferedInputStream(new FileInputStream(snap));
crcIn = new CheckedInputStream(snapIS, new Adler32());
InputArchive ia = BinaryInputArchive.getArchive(crcIn);
deserialize(dt, sessions, ia);
long checkSum = crcIn.getChecksum().getValue();
long val = ia.readLong("val");
if (val != checkSum) {
throw new IOException("CRC corruption in snapshot : " + snap);
}
foundValid = true;
break;
} catch (IOException e) {
LOG.warn("problem reading snap file " + snap, e);
} finally {
if (snapIS != null)
snapIS.close();
if (crcIn != null)
crcIn.close();
}
}
if (!foundValid) {
throw new IOException("Not able to find valid snapshots in " + snapDir);
}
dt.lastProcessedZxid = Util.getZxidFromName(snap.getName(), "snapshot");
return dt.lastProcessedZxid;
}
use of java.util.zip.CheckedInputStream in project pinot by linkedin.
the class CrcUtils method computeCrc.
public long computeCrc() {
CheckedInputStream cis = null;
InputStream is = null;
final Checksum checksum = new Adler32();
final byte[] tempBuf = new byte[BUFFER_SIZE];
for (final File file : filesToProcess) {
try {
is = new BufferedInputStream(new FileInputStream(file));
cis = new CheckedInputStream(is, checksum);
while (cis.read(tempBuf) >= 0) {
}
cis.close();
is.close();
} catch (final Exception e) {
LOGGER.error("Caught exception while computing CRC", e);
Utils.rethrowException(e);
throw new AssertionError("Should not reach this");
}
}
return checksum.getValue();
}
use of java.util.zip.CheckedInputStream in project platform_frameworks_base by android.
the class FileUtils method checksumCrc32.
/**
* Computes the checksum of a file using the CRC32 checksum routine.
* The value of the checksum is returned.
*
* @param file the file to checksum, must not be null
* @return the checksum value or an exception is thrown.
*/
public static long checksumCrc32(File file) throws FileNotFoundException, IOException {
CRC32 checkSummer = new CRC32();
CheckedInputStream cis = null;
try {
cis = new CheckedInputStream(new FileInputStream(file), checkSummer);
byte[] buf = new byte[128];
while (cis.read(buf) >= 0) {
// Just read for checksum to get calculated.
}
return checkSummer.getValue();
} finally {
if (cis != null) {
try {
cis.close();
} catch (IOException e) {
}
}
}
}
use of java.util.zip.CheckedInputStream in project android_frameworks_base by AOSPA.
the class FileUtils method checksumCrc32.
/**
* Computes the checksum of a file using the CRC32 checksum routine.
* The value of the checksum is returned.
*
* @param file the file to checksum, must not be null
* @return the checksum value or an exception is thrown.
*/
public static long checksumCrc32(File file) throws FileNotFoundException, IOException {
CRC32 checkSummer = new CRC32();
CheckedInputStream cis = null;
try {
cis = new CheckedInputStream(new FileInputStream(file), checkSummer);
byte[] buf = new byte[128];
while (cis.read(buf) >= 0) {
// Just read for checksum to get calculated.
}
return checkSummer.getValue();
} finally {
if (cis != null) {
try {
cis.close();
} catch (IOException e) {
}
}
}
}
use of java.util.zip.CheckedInputStream in project screenbird by adamhub.
the class FileUtil method getChecksum.
public static String getChecksum(String filePath) throws FileNotFoundException, IOException {
FileInputStream file = new FileInputStream(filePath);
CheckedInputStream check = new CheckedInputStream(file, new CRC32());
BufferedInputStream in = new BufferedInputStream(check);
String checkSum = "";
while (in.read() != -1) {
// Read file in completely
}
if (in != null) {
in.close();
}
if (file != null)
file.close();
if (check != null) {
checkSum = String.valueOf(check.getChecksum().getValue());
check.close();
}
return checkSum;
}
Aggregations