protected long getParentMessageId(String recipient, Message message) throws Exception { if (!StringUtil.startsWith(recipient, MBUtil.MESSAGE_POP_PORTLET_PREFIX)) { return MBUtil.getParentMessageId(message); } int pos = recipient.indexOf(CharPool.AT); if (pos < 0) { return MBUtil.getParentMessageId(message); } String target = recipient.substring(MBUtil.MESSAGE_POP_PORTLET_PREFIX.length(), pos); String[] parts = StringUtil.split(target, StringPool.PERIOD); long parentMessageId = 0; if (parts.length == 2) { parentMessageId = GetterUtil.getLong(parts[1]); } if (parentMessageId > 0) { return parentMessageId; } return MBUtil.getParentMessageId(message); }