| 
 Duplicate :   
 | 
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) 
======================================================================