public AppendingStringBuffer filter(AppendingStringBuffer responseBuffer) { IRequestablePage responsePage = getResponsePage(); if (responsePage != null && !(responsePage instanceof Page) || RequestCycle.get().find(AjaxRequestTarget.class) != null) { return responseBuffer; } DocType docType = getDocType(responseBuffer); if (docType == null) { setMetaData("Unknown doctype"); onUnknownDocType(responseBuffer); return responseBuffer; } try { ValidationReport report = validateMarkup(responseBuffer.toString(), docType); if (report.isValid()) { setMetaData("Markup is valid " + docType); onValidMarkup(responseBuffer, report); } else { setMetaData("Markup is invalid " + docType); onInvalidMarkup(responseBuffer, report); } } catch (Exception e) { log.error(e.toString(), e); } return responseBuffer; }