[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: SAX2: NSUtils.java
Toivo Lainevool wrote, > Miles Sabin wrote, > > I fear there are some big problems here. In particular, > ... snip ... > > String name = (String)joinNameTable.get(qName); > ... snip ... > > Is rather nastily thread-unsafe: the shared qName could be > > read/written by multiple threads in joinName(). You should > > either synchronize this method, or create a new QName locally. > > Hashtable get() and put() are synchronized, so the read/write > operations are thread safe. No need to have separate > synchronized blocks. True but that wasn't the problem I was pointing to. You snipped out the important bits and left the bit that was OK ;-) private static QName qName; public static String joinName (String uriPart, String localPart) { qName.uri = uriPart; // Unsynchronized write of qName.local = localPart; // shared qName String name = (String)joinNameTable.get(qName); // ^^^^^ // Unsynchronized read of // shared qName // ... etc ... } Hashtable.get() being synchronized doesn't help here. Cheers, Miles -- Miles Sabin Cromwell Media Internet Systems Architect 5/6 Glenthorne Mews +44 (0)20 8817 4030 London, W6 0LJ, England msabin@c... http://www.cromwellmedia.com/ xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i... Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1 To unsubscribe, mailto:majordomo@i... the following message; unsubscribe xml-dev To subscribe to the digests, mailto:majordomo@i... the following message; subscribe xml-dev-digest List coordinator, Henry Rzepa (mailto:rzepa@i...)
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|