I don't think the discussion was finished when you did this, Glen. Anyway, I've looked up our use of String.intern() in our sources and the only use is with namespace URIs (see FOTreeBuilder). I believe the intern() call there doesn't help a lot here concerning memory consumption. If the XML parser creates a new String instance for every SAX method call and for the namespace URI, then this is a thing we can't change. We only evaluate the namespace URI to determine the routing of the received elements. Since we implicitely know the namespace URI of each element we don't need to save this information in our FO tree. It doesn't take up any memory. We are only using the String instances given to us by the XML parser. So I believe Nils proposed change doesn't have any negative effects, especially since we don't seem to have pursued a more widespread use of String.intern() back when it was discussed in December 2003 (because it was seen as potentially problematic?). I hope I interpreted this right.
On 26.06.2005 17:13:40 gmazza wrote: > Author: gmazza > Date: Sun Jun 26 08:13:38 2005 > New Revision: 201864 > > URL: http://svn.apache.org/viewcvs?rev=201864&view=rev > Log: > Switch to .equals() instead of == for String compares of namespaces. Thanks > to Nils Meier for the suggestion. Jeremias Maerki