code: public void setCharacterEncoding(String arg0)
                      throws UnsupportedEncodingException {
          if (WCCustomProperties.CHECK_REQUEST_OBJECT_IN_USE){
              checkRequestObjectInUse();
          }
  
          //321485
          if (!enableSetCharacterEncodingAfterGetReader){
              if (_srtRequestHelper._gotReader){//Servlet 2.5
                  if (TraceComponent.isAnyTracingEnabled()&&logger.isLoggable (Level.FINE)) {
                      logger.logp(Level.FINE, CLASS_NAME,"setCharacterEncoding", "this->"+this+": "+" call ignored, already got reader");
                  }
                  return;
              }
          }
  
          //PM03928
          if (disableSetCharacterEncodingAfterParametersRead && _srtRequestHelper._parametersRead){
              if (TraceComponent.isAnyTracingEnabled()&&logger.isLoggable (Level.FINE)) {
                  logger.logp(Level.FINE, CLASS_NAME,"setCharacterEncoding", "this->"+this+": "+" name --> " + arg0 + " is ignored, already parsed data");
              }
              return;
          }
          //PM03928
  
          boolean isSupported = EncodingUtils.isCharsetSupported(arg0);
          if (TraceComponent.isAnyTracingEnabled()&&logger.isLoggable (Level.FINE)) {  //306998.15
              logger.logp(Level.FINE, CLASS_NAME,"setCharacterEncoding", "this->"+this+": "+" name --> " + arg0 + " isSupported --> " + String.valueOf(isSupported));
          }
          if(isSupported){
              _srtRequestHelper._characterEncoding = arg0;
          }
          else{
              String msg = nls.getFormattedMessage("unsupported.request.encoding.[{0}]", new Object[] { arg0 }, "Unsupported encoding specified --> " + arg0);
              throw new UnsupportedEncodingException(msg);
          }
  
      }
docs: /* (non-Javadoc)
  @see javax.servlet.ServletRequest#setCharacterEncoding(java.lang.String)