------------------------------------------------------------
revno: 1093
committer: Mark Sapiro <[email protected]>
branch nick: 2.2
timestamp: Sat 2010-02-13 13:51:10 -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.2
https://code.launchpad.net/~mailman-coders/mailman/2.2
Your team Mailman Checkins is subscribed to branch lp:mailman/2.2.
To unsubscribe from this branch go to
https://code.launchpad.net/~mailman-coders/mailman/2.2/+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:51:10 +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:07:24 +0000
+++ Mailman/Archiver/pipermail.py 2010-02-13 21:51:10 +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:24:51 +0000
+++ NEWS 2010-02-13 21:51:10 +0000
@@ -82,6 +82,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