Ticket #107 (assigned Defect)
Too many children of type {DAV:}prop for {DAV:}principal-match
| Reported by: | wsanchez@… | Owned by: | cdaboo@… |
|---|---|---|---|
| Priority: | 2: Expected | Milestone: | Later |
| Component: | Calendar Server | Severity: | Serious |
| Keywords: | Cc: | ||
| Port: |
Description
2006/12/14 23:04 -0700 [HTTPChannel,99,127.0.0.1] REPORT /principals/user/ HTTP/1.1
2006/12/14 23:04 -0700 [-] Exception rendering:
2006/12/14 23:04 -0700 [-] Unhandled Error
Traceback (most recent call last):
File "/Volumes/data/Users/wsanchez/Developer/CalendarServer/Twisted/twisted/internet/defer.py", line 239, in callback
self._startRunCallbacks(result)
File "/Volumes/data/Users/wsanchez/Developer/CalendarServer/Twisted/twisted/internet/defer.py", line 304, in _startRunCallbacks
self._runCallbacks()
File "/Volumes/data/Users/wsanchez/Developer/CalendarServer/Twisted/twisted/internet/defer.py", line 317, in _runCallbacks
self.result = callback(self.result, *args, **kw)
File "/Volumes/data/Users/wsanchez/Developer/CalendarServer/Twisted/twisted/internet/defer.py", line 647, in gotResult
_deferGenerator(g, deferred)
--- <exception caught here> ---
File "/Volumes/data/Users/wsanchez/Developer/CalendarServer/Twisted/twisted/internet/defer.py", line 623, in _deferGenerator
result = g.next()
File "/Volumes/data/Users/wsanchez/Developer/CalendarServer/Twisted/twisted/web2/dav/method/report.py", line 69, in http_REPORT
doc = doc.getResult()
File "/Volumes/data/Users/wsanchez/Developer/CalendarServer/Twisted/twisted/internet/defer.py", line 609, in getResult
self.result.raiseException()
File "/Volumes/data/Users/wsanchez/Developer/CalendarServer/Twisted/twisted/internet/defer.py", line 317, in _runCallbacks
self.result = callback(self.result, *args, **kw)
File "/Volumes/data/Users/wsanchez/Developer/CalendarServer/Twisted/twisted/web2/dav/util.py", line 66, in gotAllData
return filter(result)
File "/Volumes/data/Users/wsanchez/Developer/CalendarServer/Twisted/twisted/web2/dav/util.py", line 79, in parse
return davxml.WebDAVDocument.fromString(xml)
File "/Volumes/data/Users/wsanchez/Developer/CalendarServer/Twisted/twisted/web2/dav/element/parser.py", line 218, in parse
parser.parse(source)
File "/System/Library/Frameworks/Python.framework/Versions/2.4/Extras/lib/python/_xmlplus/sax/expatreader.py", line 109, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/System/Library/Frameworks/Python.framework/Versions/2.4/Extras/lib/python/_xmlplus/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/System/Library/Frameworks/Python.framework/Versions/2.4/Extras/lib/python/_xmlplus/sax/expatreader.py", line 216, in feed
self._parser.Parse(data, isFinal)
File "/System/Library/Frameworks/Python.framework/Versions/2.4/Extras/lib/python/_xmlplus/sax/expatreader.py", line 364, in end_element_ns
self._cont_handler.endElementNS(pair, None)
File "/Volumes/data/Users/wsanchez/Developer/CalendarServer/Twisted/twisted/web2/dav/element/parser.py", line 178, in endElementNS
element = top["class"](*top["children"], **top["attributes"])
File "/Volumes/data/Users/wsanchez/Developer/CalendarServer/Twisted/twisted/web2/dav/element/rfc3744.py", line 660, in __init__
super(PrincipalMatch, self).__init__(*children, **attributes)
File "/Volumes/data/Users/wsanchez/Developer/CalendarServer/Twisted/twisted/web2/dav/element/base.py", line 124, in __init__
assert max > 0, "Too many children of type %s for %s" % (child.sname(), self.sname())
exceptions.AssertionError: Too many children of type {DAV:}prop for {DAV:}principal-match
Change History
Note: See
TracTickets for help on using
tickets.


Note this is a deliberate error - CalDAVTester is deliberately sending invalid XML. What is wrong is that a 500 error is being sent back by the server. It ought to be 400 Bad Request. All bogus XML in requests should be trapped that way.