Everybody can create bug reports now! http://xml.apache.org/bugs is the place
to do it...
Registration is free and quick!
Thanks much!!
Mike
"George T. Joseph" wrote:
>
> This patch seems to keep getting lost. Could someone at least create a bug
> report for the problem?
>
> Problem: ChunkyByteArray doesn't implement InputStream.close(). Other
> methods
> that call ChunkyByteArray.close() as they should, are actually invoking
> InputStream.close() which itself is a noop. ChunkyByteArray does set the
> field
> holding the encapsulated InputStream to null but it won't be forced closed
> until
> its finalizer is actually run. In a long running JVM with a large heap, that
> might be a while, or never.
>
> --- l:/src/org/apache/xerces/utils/ChunkyByteArray.java Tue Jan 25 19:26:43
> 2000
> +++ x:/src/org/apache/xerces/utils/ChunkyByteArray.java Thu Feb 24 11:24:10
> 2000
> @@ -109,8 +109,6 @@
> int b = (int)(fData[0][fOffset]);
> if (++fOffset == fLength) {
> fData = null;
> - if (fLength < CHUNK_SIZE)
> - fInputStream = null;
> }
> return b;
> }
> @@ -134,8 +132,6 @@
> byte[] chunk = fData[0];
> if (length >= bytesLeft) {
> length = bytesLeft;
> - if (fLength < CHUNK_SIZE)
> - fInputStream = null;
> }
> if (buffer == null) {
> fOffset += length;
> @@ -209,8 +205,6 @@
> result = fInputStream.read(data, offset, capacity);
> if (result == -1) {
> data[offset] = (byte)0xff;
> - fInputStream.close();
> - fInputStream = null;
> break;
> }
> if (result > 0) {
> @@ -219,6 +213,12 @@
> capacity -= result;
> }
> } while (capacity > 0);
> + }
> + public void close() throws IOException
> + {
> + if (fInputStream == null) return;
> + fInputStream.close();
> + fInputStream=null;
> }
> //
> // Chunk size constants