Author: hair
Date: 2008-08-23 11:00:48-0700
New Revision: 10617
Modified:
trunk/src/java/org/tigris/scarab/notification/ScarabNewNotificationManager.java
trunk/src/java/org/tigris/scarab/util/Email.java
trunk/src/java/org/tigris/scarab/util/EmailContext.java
trunk/src/schema/scarab-schema.xml
Log:
Issue SCB845: ( All emails from one issue belonging to same mail thread)
take2.
Modified: trunk/src/java/org/tigris/scarab/notification/ScarabNewNotificationManager.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/notification/ScarabNewNotificationManager.java?view=diff&rev=10617&p1=trunk/src/java/org/tigris/scarab/notification/ScarabNewNotificationManager.java&p2=trunk/src/java/org/tigris/scarab/notification/ScarabNewNotificationManager.java&r1=10616&r2=10617
==============================================================================
--- trunk/src/java/org/tigris/scarab/notification/ScarabNewNotificationManager.java (original)
+++ trunk/src/java/org/tigris/scarab/notification/ScarabNewNotificationManager.java 2008-08-23 11:00:48-0700
@@ -310,24 +310,6 @@
ectx.put("firstNotification", firstNotification);
ectx.put("lastNotification", lastNotification);
ectx.put("changedStatus",changedStatusAttributeValue);
- // Message-ID & References headers
- try{
- if(issue.getCreatedDate().before(firstNotification.getCreationDate()))
- {
- ectx.setMessageID('<' + firstNotification.getCreationDate().getTime()
- + issueId + '@' + issue.getIdDomain() + '>');
-
- ectx.addReference('<' + issueId + '@' + issue.getIdDomain() + '>');
- }
- else
- {
- ectx.setMessageID('<' + issueId + '@' + issue.getIdDomain() + '>');
- }
- }
- catch(TorqueException te)
- {
- Log.get().warn("Unable to set Message-Id/References headers");
- }
Map groupedActivities = (Map) issueActivities.get(user);
if(groupedActivities == null)
Modified: trunk/src/java/org/tigris/scarab/util/Email.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/util/Email.java?view=diff&rev=10617&p1=trunk/src/java/org/tigris/scarab/util/Email.java&p2=trunk/src/java/org/tigris/scarab/util/Email.java&r1=10616&r2=10617
==============================================================================
--- trunk/src/java/org/tigris/scarab/util/Email.java (original)
+++ trunk/src/java/org/tigris/scarab/util/Email.java 2008-08-23 11:00:48-0700
@@ -252,20 +252,34 @@
}
}
- // Email threading
- if(null!=context.getMessageID())
+ // Email threading -- applicable to issue related notifications
+ final Issue issue = (Issue) context.get("issue");
+ String emailReferences = null;
+ if(null!=issue)
{
- te.addHeader("Message-ID", context.getMessageID());
- }
- if(null!=context.getReferences())
- {
- te.addHeader("References", context.getReferences());
+ emailReferences = issue.getEmailReferences();
+ te.addHeader("References", emailReferences);
}
try
{
log.debug("Sending email ...");
- te.send();
+ final String newEmailReference = te.send();
+ log.debug("... sent " + newEmailReference);
+
+ if(null!=emailReferences)
+ {
+ // we record, within the varchar(2000) limit,
+ // the MessageID of every mail sent if it's related to an issue change
+ if(emailReferences.length() + newEmailReference.length() > 2000)
+ {
+ // truncate emailReferences so it (& newEmailReferences) will fit
+ emailReferences = emailReferences.substring(
+ emailReferences.indexOf('<', newEmailReference.length()));
+ }
+ issue.setEmailReferences(emailReferences + ' ' + newEmailReference);
+ issue.save();
+ }
}
catch(EmailException me)
{
Modified: trunk/src/java/org/tigris/scarab/util/EmailContext.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/util/EmailContext.java?view=diff&rev=10617&p1=trunk/src/java/org/tigris/scarab/util/EmailContext.java&p2=trunk/src/java/org/tigris/scarab/util/EmailContext.java&r1=10616&r2=10617
==============================================================================
--- trunk/src/java/org/tigris/scarab/util/EmailContext.java (original)
+++ trunk/src/java/org/tigris/scarab/util/EmailContext.java 2008-08-23 11:00:48-0700
@@ -109,24 +109,5 @@
{
return subjectTemplate;
}
-
- public String getMessageID()
- {
- return (String) get("Message-ID");
- }
-
- public void setMessageID(final String messageId)
- {
- put("Message-ID", messageId);
- }
-
- public String getReferences()
- {
- return (String) get("References");
- }
-
- public void addReference(final String reference)
- {
- put("References", (null!=getReferences() ? getReferences() : "") + reference + ' ');
- }
+
}
Modified: trunk/src/schema/scarab-schema.xml
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/schema/scarab-schema.xml?view=diff&rev=10617&p1=trunk/src/schema/scarab-schema.xml&p2=trunk/src/schema/scarab-schema.xml&r1=10616&r2=10617
==============================================================================
--- trunk/src/schema/scarab-schema.xml (original)
+++ trunk/src/schema/scarab-schema.xml 2008-08-23 11:00:48-0700
@@ -281,6 +281,7 @@
<column name="LAST_TRANS_ID" required="false" type="BIGINT"/>
<column name="DELETED" required="false" type="BOOLEANINT" default="0" javaType="primitive" description="Flag, which marks that issue has been deleted."/>
<column name="MOVED" required="false" type="BOOLEANINT" default="0" javaType="primitive" description="Flag, which marks that issue has been moved (and so its uniqueId changed)"/>
+ <column name="EMAIL_REFERENCES" required="false" type="VARCHAR" size="2000" description="Message-IDs of all email notifications sent"/>
<foreign-key foreignTable="SCARAB_MODULE">
<reference local="MODULE_ID" foreign="MODULE_ID"/>
</foreign-key>
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.