Uploaded image for project: 'Harmony'
  1. Harmony
  2. HARMONY-6134

[classlib][luni] java.io.BufferedInputStream.reset() throws IOException after skipping the marked position

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 5.0M8
    • 5.0M10
    • Classlib
    • None
    • Moderate

    Description

      Given a test case [1], HY throws IOException after skipping the marked position while RI doesn't.

      If SKIP_VALUE<=5, HY and RI pass the test;
      else HY throws java.lang.IOException [2] but RI also passes this.

      [1] Test Case:
      public void test_skipJ_scenario1() throws IOException {
      byte[] input = "12345678900".getBytes();
      BufferedInputStream buffis = new BufferedInputStream(
      new ByteArrayInputStream(input));
      buffis.read();
      buffis.mark(5);
      buffis.skip(SKIP_VALUE);
      buffis.reset();
      }

      public void test_skipJ_scenario2() throws IOException {
      byte[] input = "12345678900".getBytes();
      BufferedInputStream buffis = new BufferedInputStream(
      new ByteArrayInputStream(input));
      buffis.mark(5);
      buffis.skip(SKIP_VALUE + 1);
      buffis.reset();
      }

      [2] Stack Trace:
      java.io.IOException: Mark has been invalidated.
      at java.io.BufferedInputStream.reset(BufferedInputStream.java:351)

      Attachments

        1. HARMONY-6134.diff
          2 kB
          Kevin Zhou

        Activity

          People

            tellison Tim Ellison
            zhoukevin Kevin Zhou
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: