[ 
https://issues.apache.org/jira/browse/IVY-1147?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maarten Coene updated IVY-1147:
-------------------------------

    Fix Version/s: 2.2.0-RC1
                       (was: trunk)

> Use of a shared DocumentBuilder causes SAXException during parallel 
> resolutions
> -------------------------------------------------------------------------------
>
>                 Key: IVY-1147
>                 URL: https://issues.apache.org/jira/browse/IVY-1147
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.0
>         Environment: Vista 32bit Sun JDK 1.6.0_17
>            Reporter: Brian Atkinson
>            Assignee: Maarten Coene
>             Fix For: 2.2.0-RC1
>
>
> I am in need of running multiple instances of ivy in parallel from within the 
> same jvm.  When I do this I am seeing the following exception:
> org.xml.sax.SAXException: FWK005 parse may not be called while parsing.
>       at 
> com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:253)
>       at 
> com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283)
>       at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:153)
>       at org.apache.ivy.util.XMLHelper.parseToDom(XMLHelper.java:198)
>       at org.apache.ivy.plugins.parser.m2.PomReader.<init>(PomReader.java:94)
>       at 
> org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.parseDescriptor(PomModuleDescriptorParser.java:115)
>       at 
> org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.parseDescriptor(PomModuleDescriptorParser.java:105)
>       at 
> org.apache.ivy.core.cache.DefaultRepositoryCacheManager$MyModuleDescriptorProvider.provideModule(DefaultRepositoryCacheManager.java:638)
>       at 
> org.apache.ivy.core.cache.ModuleDescriptorMemoryCache.getStale(ModuleDescriptorMemoryCache.java:68)
>       at 
> org.apache.ivy.core.cache.DefaultRepositoryCacheManager.getStaledMd(DefaultRepositoryCacheManager.java:655)
>       at 
> org.apache.ivy.core.cache.DefaultRepositoryCacheManager.cacheModuleDescriptor(DefaultRepositoryCacheManager.java:942)
>       at 
> org.apache.ivy.plugins.resolver.BasicResolver.parse(BasicResolver.java:542)
>       at 
> org.apache.ivy.plugins.resolver.BasicResolver.getDependency(BasicResolver.java:263)
>       at 
> org.apache.ivy.plugins.resolver.IBiblioResolver.getDependency(IBiblioResolver.java:501)
>       at 
> org.apache.ivy.plugins.resolver.ChainResolver.getDependency(ChainResolver.java:130)
>       at 
> org.apache.ivy.plugins.resolver.ChainResolver.getDependency(ChainResolver.java:130)
>       at org.apache.ivy.core.resolve.IvyNode.loadData(IvyNode.java:170)
>       at org.apache.ivy.core.resolve.VisitNode.loadData(VisitNode.java:274)
>       at 
> org.apache.ivy.core.resolve.ResolveEngine.fetchDependencies(ResolveEngine.java:671)
>       at 
> org.apache.ivy.core.resolve.ResolveEngine.doFetchDependencies(ResolveEngine.java:757)
>       at 
> org.apache.ivy.core.resolve.ResolveEngine.fetchDependencies(ResolveEngine.java:679)
>       at 
> org.apache.ivy.core.resolve.ResolveEngine.getDependencies(ResolveEngine.java:551)
>       at 
> org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:235)
>       at 
> org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:193)
>       at 
> org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:138)
>       at 
> org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:134)
>       at org.apache.ivy.Ivy.resolve(Ivy.java:473)
> It seems that the DocumentBuilder created in 
> org.apache.ivy.util.XMLHelper.getDocBuilder(EntityResolver) is stored in a 
> static variable and only initialized once.  Would it be possible to cache the 
> DocumentBuilderFactory rather then the DocumentBuilder?  Doing this would 
> allow for parallel XML parsing.  Additionally the entity resolver provided on 
> the first call is the only one used for the lifetime of the DocumentBuilder.  
> I don't know if this was intended, but the method signature does not seem to 
> suggest it.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to