docs: public void setInputStreamData(HashMap inStreamInfo) throws IOException
      {
  
          if (WCCustomProperties.CHECK_REQUEST_OBJECT_IN_USE){
              checkRequestObjectInUse();
          }	
          if (_srtRequestHelper._gotReader)
          {
              if (TraceComponent.isAnyTracingEnabled()&&logger.isLoggable (Level.FINE))
                  logger.logp(Level.FINE, CLASS_NAME,"setInputStreamData","attempt to setInputStreamData after it has been read");
              throw new IllegalStateException(
                                              liberty_nls.getString(
                                                                    "Reader.already.obtained",
                                                              "Reader already obtained"));
          } else {
              _setInputDataStreamCalled = true; // 516233
  
              if (inStreamInfo != null)
              {
  
                  // 516233 - the input map should have a contentLength, if not we were given the wring map 
                  Integer contentLength = (Integer) inStreamInfo.get(INPUT_STREAM_CONTENT_DATA_LENGTH);
  
                  if (contentLength==null) {
  
                      // security passed in a map that we did not create - should not happen
                      if (TraceComponent.isAnyTracingEnabled()&&logger.isLoggable (Level.FINE))
                          logger.logp(Level.FINE, CLASS_NAME,"setInputStreamData", "No content length in passed map. Throw IOException");
                      throw new IllegalStateException();
  
                  } else {
  
                      _setInputStreamContentLength = contentLength.intValue();
  
                      _setInputStreamContentType = (String) inStreamInfo.get(INPUT_STREAM_CONTENT_TYPE);
  
                      byte[] inStreamContentData = (byte[]) inStreamInfo.get(INPUT_STREAM_CONTENT_DATA);
  
                      // 516233 allow for no post data
                      if (inStreamContentData != null)
                      {
  
                          if (TraceComponent.isAnyTracingEnabled()&&logger.isLoggable (Level.FINE))
                              logger.logp(Level.FINE, CLASS_NAME, "setInputStreamData", "SetInputStreamData Content Type = " + _setInputStreamContentType + ", " +
                                              "contentLength = " + _setInputStreamContentLength+ ", data length = " + inStreamContentData.length + " : this = " + this );
  
                          ByteArrayInputStream inDataInputStream = new ByteArrayInputStream(inStreamContentData);
                          try
                          {
                              _in.init(inDataInputStream);
                              if (inStreamContentData.length > 0)
                              {
                                  _in.setContentLength(inStreamContentData.length);
                              }
                              SRTServletRequestThreadData.getInstance().setParameters(null);  //reset output of parseParameter method.
                          }
                          catch (IOException exc)
                          {
                              if (TraceComponent.isAnyTracingEnabled()&&logger.isLoggable (Level.FINE))
                                  logger.logp(Level.FINE, CLASS_NAME, "setInputStreamData", "Exception caught : " + exc );
                              throw exc;
                          }
                      }
                  }
              } else {
                  // securty passed didn't provide a map - should not happen
                  if (TraceComponent.isAnyTracingEnabled()&&logger.isLoggable (Level.FINE))
                      logger.logp(Level.FINE, CLASS_NAME, "setInputStreamData","No map passed as input");
                  throw new IllegalArgumentException();
              }
          }
      }