[jdom-interest] Inconsistancy in Namespace.hashCode().

Elliotte Rusty Harold elharo at metalab.unc.edu
Sat Mar 3 07:34:08 PST 2001

At 2:45 PM -0800 2/28/01, Jason Hunter wrote:

>Good eye.  I've changed the documentation on my local copy to be:
>      *  This returns a probably unique hash code for the
>      *  If two namespaces have the same URI but different prefixes, they
>      *  have a different hash code.
>This correctly defines the behavior, and I think the existing behavior
>is correct.  Anyone (Elliotte esp) have concerns?

Yes, I disagree. I'm not sure when the mistake got in, but the 
comment is correct (i.e. it describes the right behavior) and the 
current code is wrong. Two namespaces are equal if their URIs are 
equal. The prefix should not be considered when testing for equality.

I suppose you can argue that two Namespace objects are not equal if 
they describe different prefixes. Maybe that makes sense, but it 
makes me deeply uncomfortable.

I guess the question comes down to what the use case for comparing 
namespaces is. I would expect that the equals method would let us 
take two set elements with possibly different prefixes, possibly one 
in a default namespace, and determine whether or not they have the 
same type; e.g. are both MathML set elements or is one a MathML set 
element and one an SVG set element? This only works if we compare 
based on URI and not prefix.

| Elliotte Rusty Harold | elharo at metalab.unc.edu | Writer/Programmer |
|                  The XML Bible (IDG Books, 1999)                   |
|              http://metalab.unc.edu/xml/books/bible/               |
|   http://www.amazon.com/exec/obidos/ISBN=0764532367/cafeaulaitA/   |
|  Read Cafe au Lait for Java News:  http://metalab.unc.edu/javafaq/ |
|  Read Cafe con Leche for XML News: http://metalab.unc.edu/xml/     |

More information about the jdom-interest mailing list