Source:
<code>protected Map<String, Object> getJMSProperties(Mail mail, long nextDelivery) throws MessagingException { Map<String, Object> props = new HashMap<>(); props.put(JAMES_NEXT_DELIVERY, nextDelivery); props.put(JAMES_MAIL_ERROR_MESSAGE, mail.getErrorMessage()); props.put(JAMES_MAIL_LAST_UPDATED, mail.getLastUpdated().getTime()); props.put(JAMES_MAIL_MESSAGE_SIZE, mail.getMessageSize()); props.put(JAMES_MAIL_NAME, mail.getName()); if (!mail.getPerRecipientSpecificHeaders().getHeadersByRecipient().isEmpty()) { byte[] serialize = SerializationUtils.serialize(mail.getPerRecipientSpecificHeaders()); props.put(JAMES_MAIL_PER_RECIPIENT_HEADERS, Hex.encodeHexString(serialize)); } <START> String recipientsBuilder = Joiner.on(JAMES_MAIL_SEPARATOR).skipNulls().join(mail.getRecipients()); <END> props.put(JAMES_MAIL_RECIPIENTS, recipientsBuilder); props.put(JAMES_MAIL_REMOTEADDR, mail.getRemoteAddr()); props.put(JAMES_MAIL_REMOTEHOST, mail.getRemoteHost()); String sender = Optional.ofNullable(mail.getSender()).map(MailAddress::toString).orElse(""); StringBuilder attrsBuilder = new StringBuilder(); Iterator<String> attrs = mail.getAttributeNames(); while (attrs.hasNext()) { String attrName = attrs.next(); attrsBuilder.append(attrName); Object value = convertAttributeValue(mail.getAttribute(attrName)); props.put(attrName, value); if (attrs.hasNext()) { attrsBuilder.append(JAMES_MAIL_SEPARATOR); } } props.put(JAMES_MAIL_ATTRIBUTE_NAMES, attrsBuilder.toString()); props.put(JAMES_MAIL_SENDER, sender); props.put(JAMES_MAIL_STATE, mail.getState()); return props; }</code><technical_language>is more a recipientsBuilder a recipientsAsString</technical_language>

Target:
protected Map<String, Object> getJMSProperties(Mail mail, long nextDelivery) throws MessagingException { Map<String, Object> props = new HashMap<>(); props.put(JAMES_NEXT_DELIVERY, nextDelivery); props.put(JAMES_MAIL_ERROR_MESSAGE, mail.getErrorMessage()); props.put(JAMES_MAIL_LAST_UPDATED, mail.getLastUpdated().getTime()); props.put(JAMES_MAIL_MESSAGE_SIZE, mail.getMessageSize()); props.put(JAMES_MAIL_NAME, mail.getName()); if (!mail.getPerRecipientSpecificHeaders().getHeadersByRecipient().isEmpty()) { byte[] serialize = SerializationUtils.serialize(mail.getPerRecipientSpecificHeaders()); props.put(JAMES_MAIL_PER_RECIPIENT_HEADERS, Base64.encodeBase64String(serialize)); } String recipientsAsString = Joiner.on(JAMES_MAIL_SEPARATOR).skipNulls().join(mail.getRecipients()); props.put(JAMES_MAIL_RECIPIENTS, recipientsAsString); props.put(JAMES_MAIL_REMOTEADDR, mail.getRemoteAddr()); props.put(JAMES_MAIL_REMOTEHOST, mail.getRemoteHost()); String sender = Optional.ofNullable(mail.getSender()).map(MailAddress::asString).orElse(""); StringBuilder attrsBuilder = new StringBuilder(); Iterator<String> attrs = mail.getAttributeNames(); while (attrs.hasNext()) { String attrName = attrs.next(); attrsBuilder.append(attrName); Object value = convertAttributeValue(mail.getAttribute(attrName)); props.put(attrName, value); if (attrs.hasNext()) { attrsBuilder.append(JAMES_MAIL_SEPARATOR); } } props.put(JAMES_MAIL_ATTRIBUTE_NAMES, attrsBuilder.toString()); props.put(JAMES_MAIL_SENDER, sender); props.put(JAMES_MAIL_STATE, mail.getState()); return props; }