public void refresh() {
    myAlarm.cancelAllRequests();
    myAlarm.addRequest(() -> {
      ConfigurationError[] errors;
      int currentStamp;
      synchronized (myLock) {
        errors = myErrors.toArray(new ConfigurationError[0]);
        currentStamp = myComputedErrorsStamp;
      }

      final HtmlChunk[] liTags = getErrorDescriptions(errors);

      final HtmlChunk.Element ol = HtmlChunk.tag("ol")
        .children(liTags);

      final HtmlChunk.Element style = HtmlChunk.tag("style")
        .attr("type", "text/css")
        .addText(myStyleText);
      final HtmlChunk.Element headerTag = new HtmlBuilder()
        .append(style)
        .wrapWith("header");

      final HtmlChunk.Element result = new HtmlBuilder()
        .append(headerTag)
        .append(HtmlChunk.body().child(ol))
        .wrapWith(HtmlChunk.html());

      myContentUpdateQueue.queue(new ShowErrorsUpdate(currentStamp, result.toString()));
      if (myOnErrorsChanged != null) {
        myOnErrorsChanged.run();
      }
    }, 100);
  }
public void refresh()