private static void objectArrayAppend(StringBuilder sbuf, Object[] a,
                                          Set<Object> seenSet) {
        if (!seenSet.contains(a)) {
            seenSet.add(a);
            final int len = a.length;
            for (int i = 0; i < len; i++) {
                deeplyAppendParameter(sbuf, a[i], seenSet);
                if (i != len - 1) {
                    sbuf.append(ARRAY_JOIN_STR);
                }
            }
            // allow repeats in siblings
            seenSet.remove(a);
        } else {
            sbuf.append("...");
        }
    }