final synchronized XMLDTDLoader getDTDLoader(String paramString)
{
SoftReference localSoftReference;
XMLDTDLoaderHolder localXMLDTDLoaderHolder;
XMLDTDLoader localXMLDTDLoader;
if ("1.1".equals(paramString))
{
while (this.freeXML11DTDLoaderIndex >= 0)
{
localSoftReference = this.xml11DTDLoaders[this.freeXML11DTDLoaderIndex];
localXMLDTDLoaderHolder = (XMLDTDLoaderHolder)localSoftReference.get();
if ((localXMLDTDLoaderHolder != null) && (localXMLDTDLoaderHolder.loader != null))
{
localXMLDTDLoader = localXMLDTDLoaderHolder.loader;
localXMLDTDLoaderHolder.loader = null;
this.freeXML11DTDLoaderIndex -= 1;
return localXMLDTDLoader;
}
this.xml11DTDLoaders[(this.freeXML11DTDLoaderIndex--)] = null;
}
return (XMLDTDLoader)ObjectFactory.newInstance("org.apache.xerces.impl.dtd.XML11DTDProcessor", ObjectFactory.findClassLoader(), true);
}
do
{
localSoftReference = this.xml10DTDLoaders[this.freeXML10DTDLoaderIndex];
localXMLDTDLoaderHolder = (XMLDTDLoaderHolder)localSoftReference.get();
if ((localXMLDTDLoaderHolder != null) && (localXMLDTDLoaderHolder.loader != null))
{
localXMLDTDLoader = localXMLDTDLoaderHolder.loader;
localXMLDTDLoaderHolder.loader = null;
this.freeXML10DTDLoaderIndex -= 1;
return localXMLDTDLoader;
}
this.xml10DTDLoaders[(this.freeXML10DTDLoaderIndex--)] = null;
}
while (this.freeXML10DTDLoaderIndex >= 0);
return new XMLDTDLoader();
}