Affected Version: gxt-3.0.0b

The method renderGroupSummary in the class GroupSummaryView calls the method render, provided by the interface SummaryRenderer, which is returning a SafeHtml. The SafeHtml gets escaped in the final rendering and just just shows up the html as text in the targeted summary-cell.

This seems to be a bug in the method renderGroupSummary:
 protected SafeHtml renderSummary(GroupingData<M> groupInfo, Map<ValueProvider<? super M, ?>, Number> data) {
  Number n = data.get(cm.getValueProvider(i));
  String value = "";

  if (cf.getSummaryFormat() != null) {
     value = n == null ? "" : cf.getSummaryFormat().format(n.doubleValue());
  } else if (cf.getSummaryRenderer() != null) {
    value = cf.getSummaryRenderer().render(n, data).asString();
  SafeHtml tdContent =, cellClasses, cd.getStyles(), cellInner, cf.getColumnTextStyle(), SafeHtmlUtils.fromString(value));
The interface SummaryRenderer - used by renderSummary - states to return a SafeHtml:
public interface SummaryRenderer<M> {
  public SafeHtml render(Number value, Map<ValueProvider<? super M, ?>, Number> data);
This safeHtml gets escaped, since value = cf.getSummaryRenderer().render(n, data).asString() and SafeHtmlUtils.fromString(value) are called. In the end the Cell contains html as text.

Happy Coding and thanks for your efforts