entry.isize = ((trailerBytes[7] & 255) << 24) | ((trailerBytes[6] & 255) << 16) | ((trailerBytes[5] & 255) << 8) | (trailerBytes[4] & 255);
entry.comp_crc32 = (int)(crc.getValue() & 0xffffffff);
entry.comp_isize = (int)(inf.getBytesWritten() & 0xffffffff);
if (entry.comp_crc32 != entry.crc32) {
entry.diagnostics.addError(
new Diagnosis(
DiagnosisType.INVALID_EXPECTED,
"CRC32",
Integer.toHexString(entry.crc32),
Integer.toHexString(entry.comp_crc32)
)
);
}
if (entry.comp_isize != entry.isize) {
entry.diagnostics.addError(
new Diagnosis(
DiagnosisType.INVALID_EXPECTED,
"ISize",
Long.toString(entry.isize),
Long.toString(entry.comp_isize)
)
);
}
} else {
gzipEntry.diagnostics.addError(new Diagnosis(DiagnosisType.INVALID_DATA, "GZip file", "Unexpected EOF!"));
bIsCompliant = false;
}
// Compliance
if (gzipEntry.diagnostics.hasErrors() || gzipEntry.diagnostics.hasWarnings()) {
gzipEntry.bIsCompliant = false;