code: public String getRenderUrl() {
  
          final String alternativeMaximizedUrl = getAlternativeMaximizedLink();
          if (null != alternativeMaximizedUrl) {
              return alternativeMaximizedUrl;
          }
  
          final String contextPath = PortalWebUtils.currentRequestContextPath();
  
          // TODO: stop abstraction violation of relying on knowledge of uPortal URL implementation
          // details
          return contextPath + "/p/" + getFName() + "/render.uP";
      }
docs: Convenience method for getting a bookmarkable URL for rendering the defined portlet,
  
  <p>Normally this is the portal rendering of the portlet, addressed by fname, and in that case
  this method will *ONLY* work when invoked in the context of a Spring-managed
  HttpServletRequest available via RequestContextHolder.
  
  <p>When there is an alternativeMaximizedLink, this method returns that instead.
  
  <p>WARNING: This method does not consider whether the requesting user has permission to
  render the target portlet, so this might be getting a URL that the user can't actually use.
  
  @return URL for rendering the portlet
  @throws IllegalStateException when context does not allow computing the URL