private static boolean sameCatchRanges(StatEdge edge) {

    Statement from = edge.getSource();
    Statement to = edge.getDestination();

    while (true) {

      Statement parent = from.getParent();
      if (parent.containsStatementStrict(to)) {
        break;
      }

      if (parent.type == StatementType.TRY_CATCH ||
          parent.type == StatementType.CATCH_ALL) {
        if (parent.getFirst() == from) {
          return false;
        }
      }
      else if (parent.type == StatementType.SYNCHRONIZED) {
        if (parent.getStats().get(1) == from) {
          return false;
        }
      }

      from = parent;
    }

    return true;
  }
private static boolean sameCatchRanges(StatEdge edge)