This is an automated email from the ASF dual-hosted git repository.

pawan pushed a commit to branch release17.12
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git


The following commit(s) were added to refs/heads/release17.12 by this push:
     new 9706acf  Fixed: Potensial bug under 
CommunicationEventServices#updateCommEventAfterEmail for 
CommunicationEvent.subject field (OFBIZ-10879)
9706acf is described below

commit 9706acf064e26c291c0bd10081df8286ae6b359b
Author: Pawan Verma <[email protected]>
AuthorDate: Sat Jan 25 15:54:37 2020 +0530

    Fixed: Potensial bug under 
CommunicationEventServices#updateCommEventAfterEmail for 
CommunicationEvent.subject field
    (OFBIZ-10879)
    
    CommunicationEventServices#updateCommEventAfterEmail could generate wrong 
result. If general.properties value 'mail.notifications.redirectTo' is used, it 
is possible that the subject string has more than 255 character.
    
    Thanks, Ulrich Heidfeld for your contribution.
---
 .../communication/CommunicationEventServices.java  | 23 ++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git 
a/applications/party/src/main/java/org/apache/ofbiz/party/communication/CommunicationEventServices.java
 
b/applications/party/src/main/java/org/apache/ofbiz/party/communication/CommunicationEventServices.java
index 759008f..507d97c 100644
--- 
a/applications/party/src/main/java/org/apache/ofbiz/party/communication/CommunicationEventServices.java
+++ 
b/applications/party/src/main/java/org/apache/ofbiz/party/communication/CommunicationEventServices.java
@@ -43,6 +43,7 @@ import javax.mail.internet.InternetAddress;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.commons.lang.StringUtils;
 import org.apache.ofbiz.base.location.FlexibleLocation;
 import org.apache.ofbiz.base.util.Debug;
 import org.apache.ofbiz.base.util.GeneralException;
@@ -607,6 +608,7 @@ public class CommunicationEventServices {
      */
     public static Map<String, Object> 
updateCommEventAfterEmail(DispatchContext dctx, Map<String, ? extends Object> 
context) {
         LocalDispatcher dispatcher = dctx.getDispatcher();
+        Delegator delegator = dctx.getDelegator();
 
         GenericValue userLogin = (GenericValue) context.get("userLogin");
         String communicationEventId = (String) 
context.get("communicationEventId");
@@ -622,6 +624,27 @@ public class CommunicationEventServices {
         commEventMap.put("userLogin", userLogin);
         commEventMap.put("content", wrapper.getMessageBody());
 
+        String subject = wrapper.getSubject();
+        String redirectAddress = 
EntityUtilProperties.getPropertyValue("general",
+                "mail.notifications.redirectTo", delegator);
+        if (UtilValidate.isNotEmpty(redirectAddress) && subject.endsWith("]") 
&& subject.contains(" [To: ")) {
+            // Format of subject for redirected mail from sendMail service:
+            // "Original subject [To: <sendTo>, Cc: <sendCc>, Bcc: <sendBcc>]"
+            String origSendTo = StringUtils.substringBetween(subject, "[To: ", 
", Cc:");
+            String origSendCc = StringUtils.substringBetween(subject, ", Cc: 
", ", Bcc:");
+            String origSendBcc = StringUtils.substringBetween(subject, ", Bcc: 
", "]");
+
+            // ignore "null" Strings in subject
+            if (origSendTo != "null") commEventMap.put("toString", origSendTo);
+            if (origSendCc != "null") commEventMap.put("ccString", origSendCc);
+            if (origSendBcc != "null") commEventMap.put("bccString", 
origSendBcc);
+
+            // Format of subject in commEvent: "Original subject 
[RedirectedTo: [email protected]]" 
+            subject = StringUtils.substringBefore(subject, "[To: ")
+                    + "[RedirectedTo: " + commEventMap.get("fromString") + "]";
+            commEventMap.put("subject", StringUtils.abbreviate(subject, 255));
+        }
+
         // populate the address (to/from/cc/bcc) data
         populateAddressesFromMessage(wrapper, commEventMap);
 

Reply via email to