bodewig 2005/03/21 02:05:42
Modified: . WHATSNEW
src/main/org/apache/tools/tar TarInputStream.java
Log:
Fix TarInputStream#read() and remove unneeded override of single-array-arg
read method at the same time. PR 34097
Revision Changes Path
1.786 +3 -0 ant/WHATSNEW
Index: WHATSNEW
===================================================================
RCS file: /home/cvs/ant/WHATSNEW,v
retrieving revision 1.785
retrieving revision 1.786
diff -u -r1.785 -r1.786
--- WHATSNEW 17 Mar 2005 12:01:18 -0000 1.785
+++ WHATSNEW 21 Mar 2005 10:05:42 -0000 1.786
@@ -420,6 +420,9 @@
* The VAJ tasks could fail if the project name contained characters
that need to get URL encoded. Bugzilla Report 23322.
+* TarInputStream#read() wasn't implemented correctly. Bugzilla Report
+ 34097.
+
Changes from Ant 1.6.1 to Ant 1.6.2
===================================
1.19 +8 -20 ant/src/main/org/apache/tools/tar/TarInputStream.java
Index: TarInputStream.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/tar/TarInputStream.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- TarInputStream.java 11 Jan 2005 18:41:21 -0000 1.18
+++ TarInputStream.java 21 Mar 2005 10:05:42 -0000 1.19
@@ -40,13 +40,19 @@
protected boolean hasHitEOF;
protected int entrySize;
protected int entryOffset;
- protected byte[] oneBuf;
protected byte[] readBuf;
protected TarBuffer buffer;
protected TarEntry currEntry;
private boolean v7Format;
/**
+ * This contents of this array is not used at all in this class,
+ * it is only here to avoid repreated object creation during calls
+ * to the no-arg read method.
+ */
+ protected byte[] oneBuf;
+
+ /**
* Constructor for TarInputStream.
* @param is the input stream to use
*/
@@ -278,25 +284,7 @@
*/
public int read() throws IOException {
int num = this.read(this.oneBuf, 0, 1);
-
- if (num == -1) {
- return num;
- } else {
- return (int) this.oneBuf[0];
- }
- }
-
- /**
- * Reads bytes from the current tar archive entry.
- *
- * This method simply calls read( byte[], int, int ).
- *
- * @param buf The buffer into which to place bytes read.
- * @return The number of bytes read, or -1 at EOF.
- * @throws IOException on error
- */
- public int read(byte[] buf) throws IOException {
- return this.read(buf, 0, buf.length);
+ return num == -1 ? -1 : ((int) this.oneBuf[0]) & 0xFF;
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]