protected void processPublicRenderParameters(
      HttpServletRequest request, Layout layout, Portlet portlet) {

    Map<String, String[]> publicRenderParameters =
        PublicRenderParametersPool.get(request, layout.getPlid());

    Enumeration<String> enu = request.getParameterNames();

    while (enu.hasMoreElements()) {
      String name = enu.nextElement();

      String[] values = request.getParameterValues(name);

      QName qName = PortletQNameUtil.getQName(name);

      if (qName == null) {
        continue;
      }

      PublicRenderParameter publicRenderParameter =
          portlet.getPublicRenderParameter(qName.getNamespaceURI(), qName.getLocalPart());

      if (publicRenderParameter == null) {
        continue;
      }

      String publicRenderParameterName = PortletQNameUtil.getPublicRenderParameterName(qName);

      if (name.startsWith(PortletQName.PUBLIC_RENDER_PARAMETER_NAMESPACE)) {

        publicRenderParameters.put(publicRenderParameterName, values);
      } else {
        publicRenderParameters.remove(publicRenderParameterName);
      }
    }
  }