[CalendarServer-changes] [385] CalendarServer/trunk/twistedcaldav/resource.py

source_changes at macosforge.org source_changes at macosforge.org
Tue Nov 7 14:41:30 PST 2006


Revision: 385
          http://trac.macosforge.org/projects/calendarserver/changeset/385
Author:   wsanchez at apple.com
Date:     2006-11-07 14:41:30 -0800 (Tue, 07 Nov 2006)

Log Message:
-----------
Revert r282, which breaks DirectoryTypePrincipalProvisioningResource.findAnyGUID, which is illegally using a private variable in CalendarPrincipalCollectionResource.

Modified Paths:
--------------
    CalendarServer/trunk/twistedcaldav/resource.py

Modified: CalendarServer/trunk/twistedcaldav/resource.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/resource.py	2006-11-07 03:32:53 UTC (rev 384)
+++ CalendarServer/trunk/twistedcaldav/resource.py	2006-11-07 22:41:30 UTC (rev 385)
@@ -470,7 +470,7 @@
     """
     # Use a WeakKeyDictionary to keep track of all instances.
     # A WeakKeySet would be more appropriate, but there is no such class yet.
-    _principleCollectionSet = set()
+    _principleCollectionSet = WeakValueDictionary()
 
     @classmethod
     def outboxForCalendarUser(clazz, request, address):
@@ -517,7 +517,7 @@
 
         # Register self with class
         if url not in CalendarPrincipalCollectionResource._principleCollectionSet:
-            CalendarPrincipalCollectionResource._principleCollectionSet.add(url)
+            CalendarPrincipalCollectionResource._principleCollectionSet[url] = self
 
     def isCollection(self):
         return True
@@ -574,11 +574,9 @@
     @return: the L{CalendarPrincipalResource} for the specified calendar
         user, or C{None} if the user is not found.
     """
-    for url in CalendarPrincipalCollectionResource._principleCollectionSet:
+    for url in CalendarPrincipalCollectionResource._principleCollectionSet.keys():
         try:
-            pcollection = waitForDeferred(request.locateResource(url))
-            yield pcollection
-            pcollection = pcollection.getResult()
+            pcollection = CalendarPrincipalCollectionResource._principleCollectionSet[url]
             if isinstance(pcollection, CalendarPrincipalCollectionResource):
                 principal = waitForDeferred(pcollection.findCalendarUser(request, address))
                 yield principal

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20061107/3f15de4f/attachment.html


More information about the calendarserver-changes mailing list