The method outputXML() is used transmit the template parameters when xml==True. However outputXML() only sends the contents of the header hash table and the fixed hash table. It does not send the array of "repeat" values in the parameter block.
This omission is most noticeable when the ERROR template is rendered.
gets the array of error descriptions via cmsReq.getErrorDescr() and inserts them into the repeat array in the template parameter block.
However because the repeat array is not included when outputXML is called to transmit an error report (e.g. error template) after a scriplet process() method is called in CMSServlet.service() which resulted in an error the error descriptions are discarded.
In other words any calls to setErrorDescription() are effectively lost and never reach the client when using XML. Fortunately at least the errorDetail field is transmitted.
patch provided in bz #531953 solves this problem
Patch included in in bug #533979 (attachment #373874 [details]) is committed.