code: @Override
      public void close() throws IOException {
          if (isClosed()) {
              return;
          }
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "Closing stream: " + this);
          }
          //adding MultiRead option
          if (!this.enableMultiReadofPostData) {
              if (null != this.buffer) {
                  this.buffer.release();
                  this.buffer = null;
              }
              validate();
          } else {
              if (null != this.buffer) {
                  if (firstReadCompleteforMulti) {
                      this.buffer.rewind(); // make position 0, the buffer is ready for next read
                  } else {
                      this.buffer.release();
                  }
                  this.buffer = null;
              }
              validate();
              if (obs != null) {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Alert for close , obs -->" + obs + " buffer ->" + this);
                  }
                  obs.alertISClose();
              }
              this.firstReadCompleteforMulti = true;
              this.postDataIndex = 0;
          }
          this.closed = true;
      }
docs: /*
  (non-Javadoc)
  
  @see java.io.InputStream#close()