code: protected String updateJsp(String vfsName, CmsFlexController controller, Set<String> updatedFiles) {
  
          String jspVfsName = CmsLinkManager.getAbsoluteUri(vfsName, controller.getCurrentRequest().getElementRootPath());
          if (LOG.isDebugEnabled()) {
              LOG.debug(Messages.get().getBundle().key(Messages.LOG_UPDATE_JSP_1, jspVfsName));
          }
          String jspRfsName;
          try {
              CmsResource includeResource;
              try {
                  // first try a root path
                  includeResource = readJspResource(controller, jspVfsName);
              } catch (CmsVfsResourceNotFoundException e) {
                  // if fails, try a site relative path
                  includeResource = readJspResource(
                      controller,
                      controller.getCmsObject().getRequestContext().addSiteRoot(jspVfsName));
              }
              // make sure the jsp referenced file is generated
              jspRfsName = updateJsp(includeResource, controller, updatedFiles);
              if (LOG.isDebugEnabled()) {
                  LOG.debug(Messages.get().getBundle().key(Messages.LOG_NAME_REAL_FS_1, jspRfsName));
              }
          } catch (Exception e) {
              jspRfsName = null;
              if (LOG.isDebugEnabled()) {
                  LOG.debug(Messages.get().getBundle().key(Messages.LOG_ERR_UPDATE_1, jspVfsName), e);
              }
          }
          return jspRfsName;
      }
docs: Updates a JSP page in the "real" file system in case the VFS resource has changed based on the resource name.<p>
  
  Generates a resource based on the provided name and calls {@link #updateJsp(CmsResource, CmsFlexController, Set)}.<p>
  
  @param vfsName the name of the JSP file resource in the VFS
  @param controller the controller for the JSP integration
  @param updatedFiles a Set containing all JSP pages that have been already updated
  
  @return the file name of the updated JSP in the "real" FS