You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by "Lesniak, Alex" <Al...@mdx.com> on 2002/08/07 22:09:44 UTC

Synchronization issue with SchemaDVFactory

Hi,

I'm seeing NullPointerExceptions (see below) during schema validation in a
multithreaded environment.  I'm also sometimes seeing the following
validation error:

whiteSpace-valid-restriction.1: It is an error if whiteSpace = ''preserve''
or ''replace'' and fBase.whiteSpace = ''collapse''. 

I'm using a new XMLReader for every parse (I'm not trying to share
XMLReaders accross threads). 
I fixed the problem by modifying SchemaDVFactory to return a new instance of
the factory each time rather than the singleton instance in:

public static synchronized final SchemaDVFactory getInstance()

My guess is that the realization of SchemaDVFactory is not thread-safe and
it is being treated as such.

Thanks,

-- Alex

java.lang.NullPointerException at
org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl.setRestrictionValues(XSSimpleT
ypeDecl.java:331) at
org.apache.xerces.impl.dv.xs.SchemaDVFactoryImpl.createTypeRestriction(Schem
aDVFactoryImpl.java:125) at
org.apache.xerces.impl.xs.traversers.XSDSimpleTypeTraverser.traverseSimpleTy
peDecl(XSDSimpleTypeTraverser.java:352) at
org.apache.xerces.impl.xs.traversers.XSDSimpleTypeTraverser.traverseLocal(XS
DSimpleTypeTraverser.java:168) at
org.apache.xerces.impl.xs.traversers.XSDElementTraverser.traverseNamedElemen
t(XSDElementTraverser.java:340) at
org.apache.xerces.impl.xs.traversers.XSDElementTraverser.traverseGlobal(XSDE
lementTraverser.java:226) at
org.apache.xerces.impl.xs.traversers.XSDHandler.traverseSchemas(XSDHandler.j
ava:937) at
org.apache.xerces.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:
394) at
org.apache.xerces.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:49
1) at
org.apache.xerces.impl.xs.XMLSchemaValidator.findSchemaGrammar(XMLSchemaVali
dator.java:2292) at
org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaVal
idator.java:1797) at
org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator
.java:566) at
org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement(XMLNamespaceBin
der.java:876) at
org.apache.xerces.impl.XMLNamespaceBinder.startElement(XMLNamespaceBinder.ja
va:568) at
org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java
:756) at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDo
cumentFragmentScannerImpl.java:752) at
org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElem
entHook(XMLDocumentScannerImpl.java:942) at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatc
her.dispatch(XMLDocumentFragmentScannerImpl.java:1520) at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocume
ntFragmentScannerImpl.java:333) at
org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:524)
at
org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:580)
at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152) at
org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:116
9) 


---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-dev-help@xml.apache.org