public static List<Integer> readTombstones(Mailbox mbox, long lastSync) throws ServiceException {
public static MailItem.TypedIdList readTombstones(Mailbox mbox, long lastSync) throws ServiceException {
    public static List<Integer> readTombstones(Mailbox mbox, long lastSync) throws ServiceException {        Connection conn = mbox.getOperationConnection();        List<Integer> tombstones = new ArrayList<Integer>();        PreparedStatement stmt = null;        ResultSet rs = null;        try {            stmt = conn.prepareStatement("SELECT ids FROM " + getTombstoneTableName(mbox) +                    " WHERE " + IN_THIS_MAILBOX_AND + "sequence > ? AND ids IS NOT NULL" +                    " ORDER BY sequence");            int pos = 1;            if (!DebugConfig.disableMailboxGroup)                stmt.setInt(pos++, mbox.getId());            stmt.setLong(pos++, lastSync);            rs = stmt.executeQuery();            while (rs.next()) {                String row = rs.getString(1);                if (row == null || row.equals(""))                    continue;                for (String entry : row.split(","))                    try {                        tombstones.add(Integer.parseInt(entry));                    } catch (NumberFormatException nfe) {                        ZimbraLog.sync.warn("unparseable TOMBSTONE entry: " + entry);                    }            }            return tombstones;        } catch (SQLException e) {            throw ServiceException.FAILURE("reading tombstones since change: " + lastSync, e);        } finally {            DbPool.closeResults(rs);            DbPool.closeStatement(stmt);        }    }