This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-compress.git
The following commit(s) were added to refs/heads/master by this push:
new 1b056105a No need to track the record size separately
1b056105a is described below
commit 1b056105a2a534bfd8e2b9eea6fd9bb1398f5eb1
Author: Gary Gregory <[email protected]>
AuthorDate: Wed Feb 28 16:06:25 2024 -0500
No need to track the record size separately
The record size is always the record buffer length
---
.../archivers/tar/TarArchiveInputStream.java | 22 +++++++++-------------
1 file changed, 9 insertions(+), 13 deletions(-)
diff --git
a/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java
b/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java
index ce35ed9f6..f1b3f2702 100644
---
a/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java
+++
b/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStream.java
@@ -82,9 +82,6 @@ public class TarArchiveInputStream extends
ArchiveInputStream<TarArchiveEntry> {
private final byte[] smallBuf = new byte[SMALL_BUFFER_SIZE];
- /** The size the TAR header. */
- private final int recordSize;
-
/** The buffer to store the TAR header. **/
private final byte[] recordBuffer;
@@ -190,7 +187,6 @@ public class TarArchiveInputStream extends
ArchiveInputStream<TarArchiveEntry> {
super(inputStream, encoding);
this.atEof = false;
this.zipEncoding = ZipEncodingHelper.getZipEncoding(encoding);
- this.recordSize = recordSize;
this.recordBuffer = new byte[recordSize];
this.blockSize = blockSize;
this.lenient = lenient;
@@ -514,7 +510,7 @@ public class TarArchiveInputStream extends
ArchiveInputStream<TarArchiveEntry> {
* @return The TarBuffer record size.
*/
public int getRecordSize() {
- return recordSize;
+ return recordBuffer.length;
}
protected final boolean isAtEOF() {
@@ -532,7 +528,7 @@ public class TarArchiveInputStream extends
ArchiveInputStream<TarArchiveEntry> {
* @return true if the record data is an End of Archive
*/
protected boolean isEOFRecord(final byte[] record) {
- return record == null || ArchiveUtils.isArrayZero(record, recordSize);
+ return record == null || ArchiveUtils.isArrayZero(record,
getRecordSize());
}
/**
@@ -587,7 +583,7 @@ public class TarArchiveInputStream extends
ArchiveInputStream<TarArchiveEntry> {
// for 1.0 PAX Format, the sparse map is stored in the file data block
if (currEntry.isPaxGNU1XSparse()) {
- sparseHeaders = TarUtils.parsePAX1XSparseHeaders(in, recordSize);
+ sparseHeaders = TarUtils.parsePAX1XSparseHeaders(in,
getRecordSize());
currEntry.setSparseHeaders(sparseHeaders);
}
@@ -689,7 +685,7 @@ public class TarArchiveInputStream extends
ArchiveInputStream<TarArchiveEntry> {
protected byte[] readRecord() throws IOException {
final int readCount = IOUtils.readFully(in, recordBuffer);
count(readCount);
- if (readCount != recordSize) {
+ if (readCount != getRecordSize()) {
return null;
}
@@ -798,10 +794,10 @@ public class TarArchiveInputStream extends
ArchiveInputStream<TarArchiveEntry> {
* @throws IOException if a truncated tar archive is detected
*/
private void skipRecordPadding() throws IOException {
- if (!isDirectory() && this.entrySize > 0 && this.entrySize %
this.recordSize != 0) {
+ if (!isDirectory() && this.entrySize > 0 && this.entrySize %
getRecordSize() != 0) {
final long available = in.available();
- final long numRecords = this.entrySize / this.recordSize + 1;
- final long padding = numRecords * this.recordSize - this.entrySize;
+ final long numRecords = this.entrySize / getRecordSize() + 1;
+ final long padding = numRecords * getRecordSize() - this.entrySize;
long skipped = org.apache.commons.io.IOUtils.skip(in, padding);
skipped = getActuallySkipped(available, skipped, padding);
@@ -846,13 +842,13 @@ public class TarArchiveInputStream extends
ArchiveInputStream<TarArchiveEntry> {
boolean shouldReset = true;
final boolean marked = in.markSupported();
if (marked) {
- in.mark(recordSize);
+ in.mark(getRecordSize());
}
try {
shouldReset = !isEOFRecord(readRecord());
} finally {
if (shouldReset && marked) {
- pushedBackBytes(recordSize);
+ pushedBackBytes(getRecordSize());
in.reset();
}
}