code: protected byte[] parseJsp(
          byte[] byteContent,
          String encoding,
          CmsFlexController controller,
          Set<String> updatedFiles,
          boolean isHardInclude) {
  
          String content;
          // make sure encoding is set correctly
          try {
              content = new String(byteContent, encoding);
          } catch (UnsupportedEncodingException e) {
              // encoding property is not set correctly
              LOG.error(
                  Messages.get().getBundle().key(
                      Messages.LOG_UNSUPPORTED_ENC_1,
                      controller.getCurrentRequest().getElementUri()),
                  e);
              try {
                  encoding = OpenCms.getSystemInfo().getDefaultEncoding();
                  content = new String(byteContent, encoding);
              } catch (UnsupportedEncodingException e2) {
                  // should not happen since default encoding is always a valid encoding (checked during system startup)
                  content = new String(byteContent);
              }
          }
  
          // parse for special %(link:...) macros
          content = parseJspLinkMacros(content, controller);
          // parse for special <%@cms file="..." %> tag
          content = parseJspCmsTag(content, controller, updatedFiles);
          // parse for included files in tags
          content = parseJspIncludes(content, controller, updatedFiles);
          // parse for <%@page pageEncoding="..." %> tag
          content = parseJspEncoding(content, encoding, isHardInclude);
          // Processes magic taglib attributes in page directives
          content = processTaglibAttributes(content);
          // convert the result to bytes and return it
          try {
              return content.getBytes(encoding);
          } catch (UnsupportedEncodingException e) {
              // should not happen since encoding was already checked
              return content.getBytes();
          }
      }
docs: Parses the JSP and modifies OpenCms critical directive information.<p>
  
  @param byteContent the original JSP content
  @param encoding the encoding to use for the JSP
  @param controller the controller for the JSP integration
  @param updatedFiles a Set containing all JSP pages that have been already updated
  @param isHardInclude indicated if this page is actually a "hard" include with <code>&lt;%@ include file="..." &gt;</code>
  
  @return the modified JSP content