public void deleteMessage()

in java/core/src/main/java/com/aliyun/openservices/tablestore/agent/memory/MemoryStoreImpl.java [474:503]


    public void deleteMessage(Message message) {
        ValidationUtils.ensureNotNull(message, "message");
        ValidationUtils.ensureNotNull(message.getSessionId(), "sessionId");
        ValidationUtils.ensureNotNull(message.getMessageId(), "messageId");
        if (message.getCreateTime() == null) {
            Long createTimeFromSecondaryIndex = getMessageCreateTimeFromSecondaryIndex(message.getSessionId(), message.getMessageId());
            if (createTimeFromSecondaryIndex == null) {
                return;
            }
            message.setCreateTime(createTimeFromSecondaryIndex);
        }

        PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        primaryKeyBuilder.addPrimaryKeyColumn(Message.MESSAGE_SESSION_ID, PrimaryKeyValue.fromString(message.getSessionId()));
        primaryKeyBuilder.addPrimaryKeyColumn(Message.MESSAGE_CREATE_TIME, PrimaryKeyValue.fromLong(message.getCreateTime()));
        primaryKeyBuilder.addPrimaryKeyColumn(Message.MESSAGE_MESSAGE_ID, PrimaryKeyValue.fromString(message.getMessageId()));
        PrimaryKey primaryKey = primaryKeyBuilder.build();

        RowDeleteChange rowDeleteChange = new RowDeleteChange(messageTableName, primaryKey);
        rowDeleteChange.setCondition(new Condition(RowExistenceExpectation.IGNORE));

        try {
            client.deleteRow(new DeleteRowRequest(rowDeleteChange));
            if (log.isDebugEnabled()) {
                log.debug("delete message:{}", message);
            }
        } catch (Exception e) {
            throw Exceptions.runtimeThrowable(String.format("delete message failed, message:%s", message), e);
        }
    }