XmlRpc.parse() initializes the "cdata" field and then clears it ( by calling setLength(0) ) upon subsequent calls to parse(). This results in a memory leak between calls to parse(), since the "cdata" field persists as long as the XmlRpc object. In my particular case, a large logfile was being passed as a parameter in a response, and the "cdata" leak was many megs in size - it ended up consuming all the memory available to my client application.
I fixed it (somewhat aggressively) by changing the line in XmlRpc.java that reads: parser.parse (new InputSource (is)); to: try { parser.parse (new InputSource (is)); } finally { cdata = null; } However, I am not a developer for this project - would someone more important please consider this change for your source code? thanks, Glen Lewis