code: protected static String handleAlreadyAppeared(Object obj, Map<Object, String> alreadyAppearedSet) {
          if (alreadyAppearedSet.containsKey(obj)) {
              final String alreadyExp = alreadyAppearedSet.get(obj);
              if (alreadyExp != null) {
                  return Srl.cut(alreadyExp, 30, "...(same)") + (alreadyExp.startsWith("{") ? "}" : "");
              } else {
                  return "null"; // basically noway, but just in case
              }
          } else {
              alreadyAppearedSet.put(obj, "(cyclic)"); // as parent
              return null; // first-time object
          }
      }
docs: ============