SAX drivers bug ... or feature !

Toivo Lainevool tlainevool at
Sat Nov 21 17:52:36 GMT 1998

---Ronald Bourret <rbourret at> wrote:
> Patrice Bonhomme wrote:
> > I think there is a little problem with AttributeList implementation 
> within
> > some of the SAX drivers (i have tested the following code with my
> > driver, the XML4J SAX driver and the AELFRED SAX driver. We are all 
> giving the
> > same results (gosh...).
> >
> > This code should write the size of each AttributeList that has
been read 
> by
> > the parser when it reached the end of the Document. But it always
> the
> > size of the last AtributeList found.
> >
> > [code snipped]
> It is a good bet that all the parsers are doing what I have done in
> parsers: used a single instance of an AttributeList object, then
cleared it 
> and reused it for each call to startElement.  Thus, all the
references in 
> your Vector point to the same object.
> This is specifically allowed by the SAX spec.  The documentation for 
> AttributeList states, "The instance provided will return valid
results only 
> during the scope of the startElement invocation (to save it for
future use, 
> the application must make a copy: the AttributeListImpl helper class 
> provides a convenient constructor for doing so)."

Instead of clearing and reusing the the AttributeList object, wouldn't
it be better to create a new attribute list object?  If the old
Attribute list isn't being referenced, it will be garbage collectible.
If the old Attribute list is being reference, it won't be changed out
from under the client.  This way of doing it seems to offer the best
of both worlds.

Toivo Lainevool


Get your free address at

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list