Browse Source

pulling out unneeded this. references in everything but the constructors/initialisers. No other changes.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@597087 13f79535-47bb-0310-9956-ffa450edef68
master
Steve Loughran 18 years ago
parent
commit
75110026aa
3 changed files with 174 additions and 174 deletions
  1. +77
    -77
      src/main/org/apache/tools/tar/TarBuffer.java
  2. +51
    -51
      src/main/org/apache/tools/tar/TarInputStream.java
  3. +46
    -46
      src/main/org/apache/tools/tar/TarOutputStream.java

+ 77
- 77
src/main/org/apache/tools/tar/TarBuffer.java View File

@@ -171,7 +171,7 @@ public class TarBuffer {
* @return true if the record data is an End of Archive * @return true if the record data is an End of Archive
*/ */
public boolean isEOFRecord(byte[] record) { public boolean isEOFRecord(byte[] record) {
for (int i = 0, sz = this.getRecordSize(); i < sz; ++i) {
for (int i = 0, sz = getRecordSize(); i < sz; ++i) {
if (record[i] != 0) { if (record[i] != 0) {
return false; return false;
} }
@@ -185,22 +185,22 @@ public class TarBuffer {
* @throws IOException on error * @throws IOException on error
*/ */
public void skipRecord() throws IOException { public void skipRecord() throws IOException {
if (this.debug) {
System.err.println("SkipRecord: recIdx = " + this.currRecIdx
+ " blkIdx = " + this.currBlkIdx);
if (debug) {
System.err.println("SkipRecord: recIdx = " + currRecIdx
+ " blkIdx = " + currBlkIdx);
} }


if (this.inStream == null) {
if (inStream == null) {
throw new IOException("reading (via skip) from an output buffer"); throw new IOException("reading (via skip) from an output buffer");
} }


if (this.currRecIdx >= this.recsPerBlock) {
if (!this.readBlock()) {
if (currRecIdx >= recsPerBlock) {
if (!readBlock()) {
return; // UNDONE return; // UNDONE
} }
} }


this.currRecIdx++;
currRecIdx++;
} }


/** /**
@@ -210,28 +210,28 @@ public class TarBuffer {
* @throws IOException on error * @throws IOException on error
*/ */
public byte[] readRecord() throws IOException { public byte[] readRecord() throws IOException {
if (this.debug) {
System.err.println("ReadRecord: recIdx = " + this.currRecIdx
+ " blkIdx = " + this.currBlkIdx);
if (debug) {
System.err.println("ReadRecord: recIdx = " + currRecIdx
+ " blkIdx = " + currBlkIdx);
} }


if (this.inStream == null) {
if (inStream == null) {
throw new IOException("reading from an output buffer"); throw new IOException("reading from an output buffer");
} }


if (this.currRecIdx >= this.recsPerBlock) {
if (!this.readBlock()) {
if (currRecIdx >= recsPerBlock) {
if (!readBlock()) {
return null; return null;
} }
} }


byte[] result = new byte[this.recordSize];
byte[] result = new byte[recordSize];


System.arraycopy(this.blockBuffer,
(this.currRecIdx * this.recordSize), result, 0,
this.recordSize);
System.arraycopy(blockBuffer,
(currRecIdx * recordSize), result, 0,
recordSize);


this.currRecIdx++;
currRecIdx++;


return result; return result;
} }
@@ -240,21 +240,21 @@ public class TarBuffer {
* @return false if End-Of-File, else true * @return false if End-Of-File, else true
*/ */
private boolean readBlock() throws IOException { private boolean readBlock() throws IOException {
if (this.debug) {
System.err.println("ReadBlock: blkIdx = " + this.currBlkIdx);
if (debug) {
System.err.println("ReadBlock: blkIdx = " + currBlkIdx);
} }


if (this.inStream == null) {
if (inStream == null) {
throw new IOException("reading from an output buffer"); throw new IOException("reading from an output buffer");
} }


this.currRecIdx = 0;
currRecIdx = 0;


int offset = 0; int offset = 0;
int bytesNeeded = this.blockSize;
int bytesNeeded = blockSize;


while (bytesNeeded > 0) { while (bytesNeeded > 0) {
long numBytes = this.inStream.read(this.blockBuffer, offset,
long numBytes = inStream.read(blockBuffer, offset,
bytesNeeded); bytesNeeded);


// //
@@ -291,16 +291,16 @@ public class TarBuffer {
offset += numBytes; offset += numBytes;
bytesNeeded -= numBytes; bytesNeeded -= numBytes;


if (numBytes != this.blockSize) {
if (this.debug) {
if (numBytes != blockSize) {
if (debug) {
System.err.println("ReadBlock: INCOMPLETE READ " System.err.println("ReadBlock: INCOMPLETE READ "
+ numBytes + " of " + this.blockSize
+ numBytes + " of " + blockSize
+ " bytes read."); + " bytes read.");
} }
} }
} }


this.currBlkIdx++;
currBlkIdx++;


return true; return true;
} }
@@ -311,7 +311,7 @@ public class TarBuffer {
* @return The current zero based block number. * @return The current zero based block number.
*/ */
public int getCurrentBlockNum() { public int getCurrentBlockNum() {
return this.currBlkIdx;
return currBlkIdx;
} }


/** /**
@@ -321,7 +321,7 @@ public class TarBuffer {
* @return The current zero based record number. * @return The current zero based record number.
*/ */
public int getCurrentRecordNum() { public int getCurrentRecordNum() {
return this.currRecIdx - 1;
return currRecIdx - 1;
} }


/** /**
@@ -331,31 +331,31 @@ public class TarBuffer {
* @throws IOException on error * @throws IOException on error
*/ */
public void writeRecord(byte[] record) throws IOException { public void writeRecord(byte[] record) throws IOException {
if (this.debug) {
System.err.println("WriteRecord: recIdx = " + this.currRecIdx
+ " blkIdx = " + this.currBlkIdx);
if (debug) {
System.err.println("WriteRecord: recIdx = " + currRecIdx
+ " blkIdx = " + currBlkIdx);
} }


if (this.outStream == null) {
if (outStream == null) {
throw new IOException("writing to an input buffer"); throw new IOException("writing to an input buffer");
} }


if (record.length != this.recordSize) {
if (record.length != recordSize) {
throw new IOException("record to write has length '" throw new IOException("record to write has length '"
+ record.length + record.length
+ "' which is not the record size of '" + "' which is not the record size of '"
+ this.recordSize + "'");
+ recordSize + "'");
} }


if (this.currRecIdx >= this.recsPerBlock) {
this.writeBlock();
if (currRecIdx >= recsPerBlock) {
writeBlock();
} }


System.arraycopy(record, 0, this.blockBuffer,
(this.currRecIdx * this.recordSize),
this.recordSize);
System.arraycopy(record, 0, blockBuffer,
(currRecIdx * recordSize),
recordSize);


this.currRecIdx++;
currRecIdx++;
} }


/** /**
@@ -368,66 +368,66 @@ public class TarBuffer {
* @throws IOException on error * @throws IOException on error
*/ */
public void writeRecord(byte[] buf, int offset) throws IOException { public void writeRecord(byte[] buf, int offset) throws IOException {
if (this.debug) {
System.err.println("WriteRecord: recIdx = " + this.currRecIdx
+ " blkIdx = " + this.currBlkIdx);
if (debug) {
System.err.println("WriteRecord: recIdx = " + currRecIdx
+ " blkIdx = " + currBlkIdx);
} }


if (this.outStream == null) {
if (outStream == null) {
throw new IOException("writing to an input buffer"); throw new IOException("writing to an input buffer");
} }


if ((offset + this.recordSize) > buf.length) {
if ((offset + recordSize) > buf.length) {
throw new IOException("record has length '" + buf.length throw new IOException("record has length '" + buf.length
+ "' with offset '" + offset + "' with offset '" + offset
+ "' which is less than the record size of '" + "' which is less than the record size of '"
+ this.recordSize + "'");
+ recordSize + "'");
} }


if (this.currRecIdx >= this.recsPerBlock) {
this.writeBlock();
if (currRecIdx >= recsPerBlock) {
writeBlock();
} }


System.arraycopy(buf, offset, this.blockBuffer,
(this.currRecIdx * this.recordSize),
this.recordSize);
System.arraycopy(buf, offset, blockBuffer,
(currRecIdx * recordSize),
recordSize);


this.currRecIdx++;
currRecIdx++;
} }


/** /**
* Write a TarBuffer block to the archive. * Write a TarBuffer block to the archive.
*/ */
private void writeBlock() throws IOException { private void writeBlock() throws IOException {
if (this.debug) {
System.err.println("WriteBlock: blkIdx = " + this.currBlkIdx);
if (debug) {
System.err.println("WriteBlock: blkIdx = " + currBlkIdx);
} }


if (this.outStream == null) {
if (outStream == null) {
throw new IOException("writing to an input buffer"); throw new IOException("writing to an input buffer");
} }


this.outStream.write(this.blockBuffer, 0, this.blockSize);
this.outStream.flush();
outStream.write(blockBuffer, 0, blockSize);
outStream.flush();


this.currRecIdx = 0;
this.currBlkIdx++;
currRecIdx = 0;
currBlkIdx++;
} }


/** /**
* Flush the current data block if it has any data in it. * Flush the current data block if it has any data in it.
*/ */
private void flushBlock() throws IOException { private void flushBlock() throws IOException {
if (this.debug) {
if (debug) {
System.err.println("TarBuffer.flushBlock() called."); System.err.println("TarBuffer.flushBlock() called.");
} }


if (this.outStream == null) {
if (outStream == null) {
throw new IOException("writing to an input buffer"); throw new IOException("writing to an input buffer");
} }


if (this.currRecIdx > 0) {
this.writeBlock();
if (currRecIdx > 0) {
writeBlock();
} }
} }


@@ -437,24 +437,24 @@ public class TarBuffer {
* @throws IOException on error * @throws IOException on error
*/ */
public void close() throws IOException { public void close() throws IOException {
if (this.debug) {
if (debug) {
System.err.println("TarBuffer.closeBuffer()."); System.err.println("TarBuffer.closeBuffer().");
} }


if (this.outStream != null) {
this.flushBlock();
if (outStream != null) {
flushBlock();


if (this.outStream != System.out
&& this.outStream != System.err) {
this.outStream.close();
if (outStream != System.out
&& outStream != System.err) {
outStream.close();


this.outStream = null;
outStream = null;
} }
} else if (this.inStream != null) {
if (this.inStream != System.in) {
this.inStream.close();
} else if (inStream != null) {
if (inStream != System.in) {
inStream.close();


this.inStream = null;
inStream = null;
} }
} }
} }


+ 51
- 51
src/main/org/apache/tools/tar/TarInputStream.java View File

@@ -99,7 +99,7 @@ public class TarInputStream extends FilterInputStream {
*/ */
public void setDebug(boolean debug) { public void setDebug(boolean debug) {
this.debug = debug; this.debug = debug;
this.buffer.setDebug(debug);
buffer.setDebug(debug);
} }


/** /**
@@ -107,7 +107,7 @@ public class TarInputStream extends FilterInputStream {
* @throws IOException on error * @throws IOException on error
*/ */
public void close() throws IOException { public void close() throws IOException {
this.buffer.close();
buffer.close();
} }


/** /**
@@ -116,7 +116,7 @@ public class TarInputStream extends FilterInputStream {
* @return The TarBuffer record size. * @return The TarBuffer record size.
*/ */
public int getRecordSize() { public int getRecordSize() {
return this.buffer.getRecordSize();
return buffer.getRecordSize();
} }


/** /**
@@ -132,10 +132,10 @@ public class TarInputStream extends FilterInputStream {
* @throws IOException for signature * @throws IOException for signature
*/ */
public int available() throws IOException { public int available() throws IOException {
if (this.entrySize - this.entryOffset > Integer.MAX_VALUE) {
if (entrySize - entryOffset > Integer.MAX_VALUE) {
return Integer.MAX_VALUE; return Integer.MAX_VALUE;
} }
return (int) (this.entrySize - this.entryOffset);
return (int) (entrySize - entryOffset);
} }


/** /**
@@ -157,7 +157,7 @@ public class TarInputStream extends FilterInputStream {
long skip = numToSkip; long skip = numToSkip;
while (skip > 0) { while (skip > 0) {
int realSkip = (int) (skip > skipBuf.length ? skipBuf.length : skip); int realSkip = (int) (skip > skipBuf.length ? skipBuf.length : skip);
int numRead = this.read(skipBuf, 0, realSkip);
int numRead = read(skipBuf, 0, realSkip);
if (numRead == -1) { if (numRead == -1) {
break; break;
} }
@@ -203,60 +203,60 @@ public class TarInputStream extends FilterInputStream {
* @throws IOException on error * @throws IOException on error
*/ */
public TarEntry getNextEntry() throws IOException { public TarEntry getNextEntry() throws IOException {
if (this.hasHitEOF) {
if (hasHitEOF) {
return null; return null;
} }


if (this.currEntry != null) {
long numToSkip = this.entrySize - this.entryOffset;
if (currEntry != null) {
long numToSkip = entrySize - entryOffset;


if (this.debug) {
if (debug) {
System.err.println("TarInputStream: SKIP currENTRY '" System.err.println("TarInputStream: SKIP currENTRY '"
+ this.currEntry.getName() + "' SZ "
+ this.entrySize + " OFF "
+ this.entryOffset + " skipping "
+ currEntry.getName() + "' SZ "
+ entrySize + " OFF "
+ entryOffset + " skipping "
+ numToSkip + " bytes"); + numToSkip + " bytes");
} }


if (numToSkip > 0) { if (numToSkip > 0) {
this.skip(numToSkip);
skip(numToSkip);
} }


this.readBuf = null;
readBuf = null;
} }


byte[] headerBuf = this.buffer.readRecord();
byte[] headerBuf = buffer.readRecord();


if (headerBuf == null) { if (headerBuf == null) {
if (this.debug) {
if (debug) {
System.err.println("READ NULL RECORD"); System.err.println("READ NULL RECORD");
} }
this.hasHitEOF = true;
} else if (this.buffer.isEOFRecord(headerBuf)) {
if (this.debug) {
hasHitEOF = true;
} else if (buffer.isEOFRecord(headerBuf)) {
if (debug) {
System.err.println("READ EOF RECORD"); System.err.println("READ EOF RECORD");
} }
this.hasHitEOF = true;
hasHitEOF = true;
} }


if (this.hasHitEOF) {
this.currEntry = null;
if (hasHitEOF) {
currEntry = null;
} else { } else {
this.currEntry = new TarEntry(headerBuf);
currEntry = new TarEntry(headerBuf);


if (this.debug) {
if (debug) {
System.err.println("TarInputStream: SET CURRENTRY '" System.err.println("TarInputStream: SET CURRENTRY '"
+ this.currEntry.getName()
+ currEntry.getName()
+ "' size = " + "' size = "
+ this.currEntry.getSize());
+ currEntry.getSize());
} }


this.entryOffset = 0;
entryOffset = 0;


this.entrySize = this.currEntry.getSize();
entrySize = currEntry.getSize();
} }


if (this.currEntry != null && this.currEntry.isGNULongNameEntry()) {
if (currEntry != null && currEntry.isGNULongNameEntry()) {
// read in the name // read in the name
StringBuffer longName = new StringBuffer(); StringBuffer longName = new StringBuffer();
byte[] buf = new byte[SMALL_BUFFER_SIZE]; byte[] buf = new byte[SMALL_BUFFER_SIZE];
@@ -265,7 +265,7 @@ public class TarInputStream extends FilterInputStream {
longName.append(new String(buf, 0, length)); longName.append(new String(buf, 0, length));
} }
getNextEntry(); getNextEntry();
if (this.currEntry == null) {
if (currEntry == null) {
// Bugzilla: 40334 // Bugzilla: 40334
// Malformed tar file - long entry name not followed by entry // Malformed tar file - long entry name not followed by entry
return null; return null;
@@ -275,10 +275,10 @@ public class TarInputStream extends FilterInputStream {
&& longName.charAt(longName.length() - 1) == 0) { && longName.charAt(longName.length() - 1) == 0) {
longName.deleteCharAt(longName.length() - 1); longName.deleteCharAt(longName.length() - 1);
} }
this.currEntry.setName(longName.toString());
currEntry.setName(longName.toString());
} }


return this.currEntry;
return currEntry;
} }


/** /**
@@ -290,8 +290,8 @@ public class TarInputStream extends FilterInputStream {
* @throws IOException on error * @throws IOException on error
*/ */
public int read() throws IOException { public int read() throws IOException {
int num = this.read(this.oneBuf, 0, 1);
return num == -1 ? -1 : ((int) this.oneBuf[0]) & BYTE_MASK;
int num = read(oneBuf, 0, 1);
return num == -1 ? -1 : ((int) oneBuf[0]) & BYTE_MASK;
} }


/** /**
@@ -310,29 +310,29 @@ public class TarInputStream extends FilterInputStream {
public int read(byte[] buf, int offset, int numToRead) throws IOException { public int read(byte[] buf, int offset, int numToRead) throws IOException {
int totalRead = 0; int totalRead = 0;


if (this.entryOffset >= this.entrySize) {
if (entryOffset >= entrySize) {
return -1; return -1;
} }


if ((numToRead + this.entryOffset) > this.entrySize) {
numToRead = (int) (this.entrySize - this.entryOffset);
if ((numToRead + entryOffset) > entrySize) {
numToRead = (int) (entrySize - entryOffset);
} }


if (this.readBuf != null) {
int sz = (numToRead > this.readBuf.length) ? this.readBuf.length
if (readBuf != null) {
int sz = (numToRead > readBuf.length) ? readBuf.length
: numToRead; : numToRead;


System.arraycopy(this.readBuf, 0, buf, offset, sz);
System.arraycopy(readBuf, 0, buf, offset, sz);


if (sz >= this.readBuf.length) {
this.readBuf = null;
if (sz >= readBuf.length) {
readBuf = null;
} else { } else {
int newLen = this.readBuf.length - sz;
int newLen = readBuf.length - sz;
byte[] newBuf = new byte[newLen]; byte[] newBuf = new byte[newLen];


System.arraycopy(this.readBuf, sz, newBuf, 0, newLen);
System.arraycopy(readBuf, sz, newBuf, 0, newLen);


this.readBuf = newBuf;
readBuf = newBuf;
} }


totalRead += sz; totalRead += sz;
@@ -341,7 +341,7 @@ public class TarInputStream extends FilterInputStream {
} }


while (numToRead > 0) { while (numToRead > 0) {
byte[] rec = this.buffer.readRecord();
byte[] rec = buffer.readRecord();


if (rec == null) { if (rec == null) {
// Unexpected EOF! // Unexpected EOF!
@@ -355,9 +355,9 @@ public class TarInputStream extends FilterInputStream {
if (recLen > sz) { if (recLen > sz) {
System.arraycopy(rec, 0, buf, offset, sz); System.arraycopy(rec, 0, buf, offset, sz);


this.readBuf = new byte[recLen - sz];
readBuf = new byte[recLen - sz];


System.arraycopy(rec, sz, this.readBuf, 0, recLen - sz);
System.arraycopy(rec, sz, readBuf, 0, recLen - sz);
} else { } else {
sz = recLen; sz = recLen;


@@ -369,7 +369,7 @@ public class TarInputStream extends FilterInputStream {
offset += sz; offset += sz;
} }


this.entryOffset += totalRead;
entryOffset += totalRead;


return totalRead; return totalRead;
} }
@@ -385,7 +385,7 @@ public class TarInputStream extends FilterInputStream {
byte[] buf = new byte[LARGE_BUFFER_SIZE]; byte[] buf = new byte[LARGE_BUFFER_SIZE];


while (true) { while (true) {
int numRead = this.read(buf, 0, buf.length);
int numRead = read(buf, 0, buf.length);


if (numRead == -1) { if (numRead == -1) {
break; break;


+ 46
- 46
src/main/org/apache/tools/tar/TarOutputStream.java View File

@@ -119,7 +119,7 @@ public class TarOutputStream extends FilterOutputStream {
* @param debug True to turn on debugging. * @param debug True to turn on debugging.
*/ */
public void setBufferDebug(boolean debug) { public void setBufferDebug(boolean debug) {
this.buffer.setDebug(debug);
buffer.setDebug(debug);
} }


/** /**
@@ -130,8 +130,8 @@ public class TarOutputStream extends FilterOutputStream {
public void finish() throws IOException { public void finish() throws IOException {
// See Bugzilla 28776 for a discussion on this // See Bugzilla 28776 for a discussion on this
// http://issues.apache.org/bugzilla/show_bug.cgi?id=28776 // http://issues.apache.org/bugzilla/show_bug.cgi?id=28776
this.writeEOFRecord();
this.writeEOFRecord();
writeEOFRecord();
writeEOFRecord();
} }


/** /**
@@ -142,8 +142,8 @@ public class TarOutputStream extends FilterOutputStream {
*/ */
public void close() throws IOException { public void close() throws IOException {
if (!closed) { if (!closed) {
this.finish();
this.buffer.close();
finish();
buffer.close();
out.close(); out.close();
closed = true; closed = true;
} }
@@ -155,7 +155,7 @@ public class TarOutputStream extends FilterOutputStream {
* @return The TarBuffer record size. * @return The TarBuffer record size.
*/ */
public int getRecordSize() { public int getRecordSize() {
return this.buffer.getRecordSize();
return buffer.getRecordSize();
} }


/** /**
@@ -191,15 +191,15 @@ public class TarOutputStream extends FilterOutputStream {
} }
} }


entry.writeEntryHeader(this.recordBuf);
this.buffer.writeRecord(this.recordBuf);
entry.writeEntryHeader(recordBuf);
buffer.writeRecord(recordBuf);


this.currBytes = 0;
currBytes = 0;


if (entry.isDirectory()) { if (entry.isDirectory()) {
this.currSize = 0;
currSize = 0;
} else { } else {
this.currSize = entry.getSize();
currSize = entry.getSize();
} }
currName = entry.getName(); currName = entry.getName();
} }
@@ -215,21 +215,21 @@ public class TarOutputStream extends FilterOutputStream {
* @throws IOException on error * @throws IOException on error
*/ */
public void closeEntry() throws IOException { public void closeEntry() throws IOException {
if (this.assemLen > 0) {
for (int i = this.assemLen; i < this.assemBuf.length; ++i) {
this.assemBuf[i] = 0;
if (assemLen > 0) {
for (int i = assemLen; i < assemBuf.length; ++i) {
assemBuf[i] = 0;
} }


this.buffer.writeRecord(this.assemBuf);
buffer.writeRecord(assemBuf);


this.currBytes += this.assemLen;
this.assemLen = 0;
currBytes += assemLen;
assemLen = 0;
} }


if (this.currBytes < this.currSize) {
if (currBytes < currSize) {
throw new IOException("entry '" + currName + "' closed at '" throw new IOException("entry '" + currName + "' closed at '"
+ this.currBytes
+ "' before the '" + this.currSize
+ currBytes
+ "' before the '" + currSize
+ "' bytes specified in the header were written"); + "' bytes specified in the header were written");
} }
} }
@@ -243,9 +243,9 @@ public class TarOutputStream extends FilterOutputStream {
* @throws IOException on error * @throws IOException on error
*/ */
public void write(int b) throws IOException { public void write(int b) throws IOException {
this.oneBuf[0] = (byte) b;
oneBuf[0] = (byte) b;


this.write(this.oneBuf, 0, 1);
write(oneBuf, 0, 1);
} }


/** /**
@@ -257,7 +257,7 @@ public class TarOutputStream extends FilterOutputStream {
* @throws IOException on error * @throws IOException on error
*/ */
public void write(byte[] wBuf) throws IOException { public void write(byte[] wBuf) throws IOException {
this.write(wBuf, 0, wBuf.length);
write(wBuf, 0, wBuf.length);
} }


/** /**
@@ -275,10 +275,10 @@ public class TarOutputStream extends FilterOutputStream {
* @throws IOException on error * @throws IOException on error
*/ */
public void write(byte[] wBuf, int wOffset, int numToWrite) throws IOException { public void write(byte[] wBuf, int wOffset, int numToWrite) throws IOException {
if ((this.currBytes + numToWrite) > this.currSize) {
if ((currBytes + numToWrite) > currSize) {
throw new IOException("request to write '" + numToWrite throw new IOException("request to write '" + numToWrite
+ "' bytes exceeds size in header of '" + "' bytes exceeds size in header of '"
+ this.currSize + "' bytes for entry '"
+ currSize + "' bytes for entry '"
+ currName + "'"); + currName + "'");


// //
@@ -290,26 +290,26 @@ public class TarOutputStream extends FilterOutputStream {
// //
} }


if (this.assemLen > 0) {
if ((this.assemLen + numToWrite) >= this.recordBuf.length) {
int aLen = this.recordBuf.length - this.assemLen;
if (assemLen > 0) {
if ((assemLen + numToWrite) >= recordBuf.length) {
int aLen = recordBuf.length - assemLen;


System.arraycopy(this.assemBuf, 0, this.recordBuf, 0,
this.assemLen);
System.arraycopy(wBuf, wOffset, this.recordBuf,
this.assemLen, aLen);
this.buffer.writeRecord(this.recordBuf);
System.arraycopy(assemBuf, 0, recordBuf, 0,
assemLen);
System.arraycopy(wBuf, wOffset, recordBuf,
assemLen, aLen);
buffer.writeRecord(recordBuf);


this.currBytes += this.recordBuf.length;
currBytes += recordBuf.length;
wOffset += aLen; wOffset += aLen;
numToWrite -= aLen; numToWrite -= aLen;
this.assemLen = 0;
assemLen = 0;
} else { } else {
System.arraycopy(wBuf, wOffset, this.assemBuf, this.assemLen,
System.arraycopy(wBuf, wOffset, assemBuf, assemLen,
numToWrite); numToWrite);


wOffset += numToWrite; wOffset += numToWrite;
this.assemLen += numToWrite;
assemLen += numToWrite;
numToWrite -= numToWrite; numToWrite -= numToWrite;
} }
} }
@@ -320,20 +320,20 @@ public class TarOutputStream extends FilterOutputStream {
// o No bytes to write (numToWrite == 0) // o No bytes to write (numToWrite == 0)
// //
while (numToWrite > 0) { while (numToWrite > 0) {
if (numToWrite < this.recordBuf.length) {
System.arraycopy(wBuf, wOffset, this.assemBuf, this.assemLen,
if (numToWrite < recordBuf.length) {
System.arraycopy(wBuf, wOffset, assemBuf, assemLen,
numToWrite); numToWrite);


this.assemLen += numToWrite;
assemLen += numToWrite;


break; break;
} }


this.buffer.writeRecord(wBuf, wOffset);
buffer.writeRecord(wBuf, wOffset);


int num = this.recordBuf.length;
int num = recordBuf.length;


this.currBytes += num;
currBytes += num;
numToWrite -= num; numToWrite -= num;
wOffset += num; wOffset += num;
} }
@@ -344,11 +344,11 @@ public class TarOutputStream extends FilterOutputStream {
* An EOF record consists of a record of all zeros. * An EOF record consists of a record of all zeros.
*/ */
private void writeEOFRecord() throws IOException { private void writeEOFRecord() throws IOException {
for (int i = 0; i < this.recordBuf.length; ++i) {
this.recordBuf[i] = 0;
for (int i = 0; i < recordBuf.length; ++i) {
recordBuf[i] = 0;
} }


this.buffer.writeRecord(this.recordBuf);
buffer.writeRecord(recordBuf);
} }
} }




Loading…
Cancel
Save