Name: rmT116609 Date: 02/06/2003
FULL PRODUCT VERSION :
java version "1.4.1_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01)
Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)
FULL OPERATING SYSTEM VERSION :
Microsoft Windows 2000 [Version 5.00.2195]
A DESCRIPTION OF THE PROBLEM :
Inflator input stream returns true from the markSupported
method, yet doesn't support resetting to a mark. The
submitted example program works if the deflator and inflator
are removed.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
See example program.
EXPECTED VERSUS ACTUAL BEHAVIOR :
expected:
one
two
We can mark this stream.
one
one
actual:
one
two
We can mark this stream.
one
two
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.io.*;
import java.util.zip.*;
public class Test {
public static void main(String[] argv) throws Exception {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
DataOutputStream out =
new DataOutputStream(
new DeflaterOutputStream( bytes ) );
out.writeUTF("one");
out.writeUTF("two");
out.close();
DataInputStream in =
new DataInputStream(
new InflaterInputStream(
new ByteArrayInputStream( bytes.toByteArray() ) ) );
System.out.println(in.readUTF()); // prints "one"
System.out.println(in.readUTF()); // print "two"
// So far, so good. Now the bug.
in = // the same DataInputStream as before
new DataInputStream(
new InflaterInputStream(
new ByteArrayInputStream( bytes.toByteArray() ) ) );
if (in.markSupported())
System.out.println("We can mark this stream.");
in.mark(2000);
System.out.println(in.readUTF()); // prints "one"
in.reset();
System.out.println(in.readUTF()); // prints "two", but should print "one"
}
}
---------- END SOURCE ----------
(Review ID: 164169)
======================================================================
- duplicates
-
JDK-4812237 GZIPInputStream (and InflaterStream?) does not support marking as claimed
-
- Resolved
-