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