public Message getMessage()

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


    public Message getMessage(String sessionId, String messageId, Long createTime) {
        ValidationUtils.ensureNotNull(sessionId, "sessionId");
        ValidationUtils.ensureNotNull(messageId, "messageId");
        if (createTime == null) {
            Long createTimeFromSecondaryIndex = getMessageCreateTimeFromSecondaryIndex(sessionId, messageId);
            if (createTimeFromSecondaryIndex == null) {
                return null;
            }
            createTime = createTimeFromSecondaryIndex;
        }

        PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
        primaryKeyBuilder.addPrimaryKeyColumn(Message.MESSAGE_SESSION_ID, PrimaryKeyValue.fromString(sessionId));
        primaryKeyBuilder.addPrimaryKeyColumn(Message.MESSAGE_CREATE_TIME, PrimaryKeyValue.fromLong(createTime));
        primaryKeyBuilder.addPrimaryKeyColumn(Message.MESSAGE_MESSAGE_ID, PrimaryKeyValue.fromString(messageId));
        PrimaryKey primaryKey = primaryKeyBuilder.build();

        SingleRowQueryCriteria criteria = new SingleRowQueryCriteria(messageTableName, primaryKey);
        criteria.setMaxVersions(1);
        try {
            GetRowResponse response = client.getRow(new GetRowRequest(criteria));
            Row row = response.getRow();
            Message message = TablestoreHelper.rowToMessage(row);
            if (log.isDebugEnabled()) {
                log.debug("get message:{}", message);
            }
            return message;
        } catch (Exception e) {
            throw Exceptions.runtimeThrowable(
                String.format("get message failed, sessionId:%s, createTime:%s, messageId:%s", sessionId, createTime, messageId),
                e
            );
        }
    }