_uri.decodeQueryTo(_baseParameters,encoding);
_uri.decodeQueryTo(_baseParameters,_queryEncoding);
    private void extractParameters()    {        if (_baseParameters == null)             _baseParameters = new MultiMap(16);                if (_paramsExtracted)         {            if (_parameters==null)                _parameters=_baseParameters;            return;        }                _paramsExtracted = true;        // Handle query string        String encoding = getCharacterEncoding();        if (_uri!=null && _uri.getQuery()!=null)        {            try            {                _uri.decodeQueryTo(_baseParameters,encoding);            }            catch (UnsupportedEncodingException e)            {                if (Log.isDebugEnabled())                    Log.warn(e);                else                    Log.warn(e.toString());            }        }        // handle any _content.        String content_type = getContentType();        if (content_type != null && content_type.length() > 0)        {            content_type = HttpFields.valueParameters(content_type, null);                        if (MimeTypes.FORM_ENCODED.equalsIgnoreCase(content_type) && HttpMethods.POST.equals(getMethod()))            {                int content_length = getContentLength();                if (content_length != 0)                {                    try                    {                        if (content_length>_maxFormContentSize && _maxFormContentSize > 0)                                throw new IllegalStateException("Form too large");                        InputStream in = getInputStream();                                               // Add form params to query params                        UrlEncoded.decodeTo(in, _baseParameters, encoding,content_length<0?_maxFormContentSize:-1);                    }                    catch (IOException e)                    {                        if (Log.isDebugEnabled())                            Log.warn(e);                        else                            Log.warn(e.toString());                    }                }            }        }                if (_parameters==null)            _parameters=_baseParameters;        else if (_parameters!=_baseParameters)        {            // Merge parameters (needed if parameters extracted after a forward).            Iterator iter = _baseParameters.entrySet().iterator();            while (iter.hasNext())            {                Map.Entry entry = (Map.Entry)iter.next();                String name=(String)entry.getKey();                Object values=entry.getValue();                for (int i=0;i<LazyList.size(values);i++)                    _parameters.add(name, LazyList.get(values, i));            }        }       }