@SuppressWarnings("unchecked")
    private void parseQuery(String query, Map<String, Object> parameters)
            throws UnsupportedEncodingException
    {

        if (query != null)
        {
            String pairs[] = query.split("[&]");

            for (String pair : pairs)
            {
                String param[] = pair.split("[=]");

                String key = null;
                String value = null;
                if (param.length > 0)
                {
                    key = URLDecoder.decode(param[0],
                            System.getProperty("file.encoding"));
                }

                if (param.length > 1)
                {
                    value = URLDecoder.decode(param[1],
                            System.getProperty("file.encoding"));
                }

                if (parameters.containsKey(key))
                {
                    Object obj = parameters.get(key);
                    if (obj instanceof List<?>)
                    {
                        List<String> values = (List<String>) obj;
                        values.add(value);
                    }
                    else if (obj instanceof String)
                    {
                        List<String> values = new ArrayList<String>();
                        values.add((String) obj);
                        values.add(value);
                        parameters.put(key, values);
                    }
                }
                else
                {
                    parameters.put(key, value);
                }
            }
        }
    }