private void fixRuleIds(final List<ConditionalFormattingRule> rules) {
        if (rules != null) {
            final Set<String> idSet = new HashSet<>();
            final List<ConditionalFormattingRule> fixedRules = new ArrayList<>(rules.size());
            for (final ConditionalFormattingRule rule : rules) {
                ConditionalFormattingRule fixed = rule;
                while (!idSet.add(fixed.getId())) {
                    fixed = fixed.copy().id(RandomId.createId(5)).build();
                }
                fixedRules.add(fixed);
            }
            if (!Objects.equals(rules, fixedRules)) {
                GWT.log("Fixed conditional formatting rules");
                setSettings(getTableComponentSettings().copy().conditionalFormattingRules(fixedRules).build());
            }
        }
    }
Fix for old rules that contained duplicate rule ids.

@param rules The rule list to fix.
stroom-core-client/src/main/java/stroom/dashboard/client/table/TablePresenter.java