boolean blobAffected = mod_content != item.getSavedSequence() && item.getDigest() != null;
boolean blobAffected = mod_content != item.getSavedSequence() && !item.getDigest().equals("");
    public synchronized void syncChangeIds(OperationContext octxt, int itemId, byte type, int date, int mod_content, int change_date, int mod_metadata)    throws ServiceException {        if (date < 0 && mod_content < 0 && change_date < 0 && mod_metadata < 0)            return;        boolean success = false;        try {            beginTransaction("syncChangeIds", octxt);            MailItem item = getItemById(itemId, type);            markItemModified(item, Change.INTERNAL_ONLY);            // resolve the defaulting to find out the real new values            date = (date < 0 ? (int) (item.getDate() / 1000) : date);            mod_content = (mod_content < 0 ? item.getSavedSequence() : mod_content);            change_date = (change_date < 0 ? (int) (item.getChangeDate() / 1000) : change_date);            mod_metadata = (mod_metadata < 0 ? item.getModifiedSequence() : mod_metadata);            if (date == item.getDate() && mod_content == item.getSavedSequence() && change_date == item.getChangeDate() && mod_metadata == item.getModifiedSequence()) {                success = true;                return;            }            // update the database if amything's changed ...            DbOfflineMailbox.setChangeIds(item, date, mod_content, change_date, mod_metadata);            // ... update the filename on the item's blob if necessary ...            boolean blobAffected = mod_content != item.getSavedSequence() && item.getDigest() != null;            if (blobAffected) {                MailboxBlob mblob = item.getBlob();                // mark old blob as disposable                PendingDelete info = new PendingDelete();                info.blobs.add(mblob);                item.mBlob = null;                markOtherItemDirty(info);                // and link to new blob                try {                    MailboxBlob newBlob = StoreManager.getInstance().link(mblob.getBlob(), this, item.getId(), mod_content, item.getVolumeId());                    markOtherItemDirty(newBlob);                } catch (IOException ioe) {                    throw ServiceException.FAILURE("could not link blob for item (" + itemId + ") with new change id (" + item.getSavedSequence() + " => " + mod_content + ")", ioe);                }            }            // ... and update the in-memory item as well            item.mData.date = date;            item.mData.modContent = mod_content;            item.mData.dateChanged = change_date;            item.mData.modMetadata = mod_metadata;            success = true;        } finally {            endTransaction(success);        }    }