------------------------------------------------------------
revno: 1220
committer: Mark Sapiro <[email protected]>
branch nick: 2.1
timestamp: Sat 2010-02-13 13:52:12 -0800
message:
  Fixed a bug in pipermail archiving that caused fallback threading by
  subject to fail.  Bug #266572.
modified:
  Mailman/Archiver/HyperDatabase.py
  Mailman/Archiver/pipermail.py
  NEWS


--
lp:mailman/2.1
https://code.launchpad.net/~mailman-coders/mailman/2.1

Your team Mailman Checkins is subscribed to branch lp:mailman/2.1.
To unsubscribe from this branch go to 
https://code.launchpad.net/~mailman-coders/mailman/2.1/+edit-subscription.
=== modified file 'Mailman/Archiver/HyperDatabase.py'
--- Mailman/Archiver/HyperDatabase.py	2005-08-27 01:40:17 +0000
+++ Mailman/Archiver/HyperDatabase.py	2010-02-13 21:52:12 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2010 by the Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
@@ -12,7 +12,8 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+# USA.
 
 #
 # site modules
@@ -138,9 +139,14 @@
         return self.dict.has_key(key)
 
     def set_location(self, loc):
-        if not self.dict.has_key(loc):
-            raise KeyError
-        self.current_index = self.sorted.index(loc)
+        index = 0
+        self.__sort()
+        for key in self.sorted:
+            if key[0] == loc:
+                self.current_index = index
+                return key,self.dict[key]
+            index = index + 1
+        raise KeyError(loc)
 
     def __getitem__(self, item):
         return self.dict[item]
@@ -311,9 +317,9 @@
         self.__openIndices(archive)
         subject = subject.lower()
         try:
-            key, tempid=self.subjectIndex.set_location(subject)
-            self.subjectIndex.next()
-            [subject2, date]= key.split('\0')
+            self.subjectIndex.set_location(subject)
+            key, tempid = self.subjectIndex.next()
+            [subject2, date]= key[:2]
             if subject!=subject2: return None
             return tempid
         except KeyError:

=== modified file 'Mailman/Archiver/pipermail.py'
--- Mailman/Archiver/pipermail.py	2009-08-01 19:01:28 +0000
+++ Mailman/Archiver/pipermail.py	2010-02-13 21:52:12 +0000
@@ -664,8 +664,12 @@
         else:
             # Get the oldest article with a matching subject, and
             # assume this is a follow-up to that article
-            parentID = self.database.getOldestArticle(archive,
-                                                      article.subject)
+            # But, use the subject that's in the database
+            if article.decoded.has_key('stripped'):
+                subject = article.decoded['stripped'].lower()
+            else:
+                subject = article.subject.lower()
+            parentID = self.database.getOldestArticle(archive, subject)
 
         if parentID and not self.database.hasArticle(archive, parentID):
             parentID = None

=== modified file 'NEWS'
--- NEWS	2010-02-05 01:23:54 +0000
+++ NEWS	2010-02-13 21:52:12 +0000
@@ -12,6 +12,8 @@
       Bug #500952 and Bug #500955.
 
   Bug Fixes and other patches
+    - Fixed a bug in pipermail archiving that caused fallback threading by
+      subject to fail.  Bug #266572.
 
     - We now give an HTTP 401 status for authentication failures from admin,
       admindb, private and options logins.

_______________________________________________
Mailman-checkins mailing list
[email protected]
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org

Reply via email to