docs: protected String createWidgetErrorHeader() {
  
          StringBuffer result = new StringBuffer(8);
          if (hasValidationErrors() || hasCommitErrors()) {
              result.append("<tr><td colspan=\"5\">&nbsp;</td></tr>\n");
              result.append("<tr><td colspan=\"2\">&nbsp;</td>");
              result.append("<td class=\"xmlTdErrorHeader\">");
              result.append(key(Messages.GUI_EDITOR_WIDGET_VALIDATION_ERROR_TITLE_0));
              result.append("</td><td colspan=\"2\">&nbsp;");
              result.append("</td></tr>\n");
              result.append("<tr><td colspan=\"5\">&nbsp;</td></tr>\n");
              if (hasCommitErrors()) {
                  result.append(dialogBlockStart(""));
                  result.append(createWidgetTableStart());
                  Iterator<Throwable> i = getCommitErrors().iterator();
                  while (i.hasNext()) {
                      Throwable t = i.next();
                      result.append("<tr><td><img src=\"");
                      result.append(getSkinUri()).append("editors/xmlcontent/");
                      result.append("error.png");
                      result.append("\" border=\"0\" alt=\"\"></td><td class=\"xmlTdError maxwidth\">");
                      while (t != null) {
                          String message = "";
                          if (t instanceof I_CmsThrowable) {
                              message = ((I_CmsThrowable)t).getLocalizedMessage(getLocale());
                          } else {
                              message = t.getLocalizedMessage();
                          }
                          if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(message)) {
                              result.append(CmsStringUtil.escapeHtml(message));
                          }
  
                          t = t.getCause();
                          if (t != null) {
                              result.append("<br/>");
                          }
                      }
                      result.append("</td></tr>\n");
                  }
                  result.append(createWidgetTableEnd());
                  result.append(dialogBlockEnd());
              }
              if (hasValidationErrors()) {
                  result.append(dialogBlockStart(""));
                  result.append(createWidgetTableStart());
                  Iterator<Throwable> i = getValidationErrorList().iterator();
                  while (i.hasNext()) {
                      Throwable t = i.next();
                      result.append("<tr><td><img src=\"");
                      result.append(getSkinUri()).append("editors/xmlcontent/");
                      result.append("error.png");
                      result.append("\" border=\"0\" alt=\"\"></td><td class=\"xmlTdError maxwidth\">");
                      while (t != null) {
                          String message = "";
                          if (t instanceof I_CmsThrowable) {
                              message = ((I_CmsThrowable)t).getLocalizedMessage(getLocale());
                          } else {
                              message = t.getLocalizedMessage();
                          }
                          result.append(CmsStringUtil.escapeHtml(message));
                          t = t.getCause();
                          if (t != null) {
                              result.append("<br>");
                          }
                      }
                      result.append("</td></tr>\n");
                  }
                  result.append(createWidgetTableEnd());
                  result.append(dialogBlockEnd());
              }
          }
          return result.toString();
      }