Return-Path: Delivered-To: apmail-ant-notifications-archive@minotaur.apache.org Received: (qmail 1679 invoked from network); 3 Dec 2009 20:15:49 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 3 Dec 2009 20:15:49 -0000 Received: (qmail 47849 invoked by uid 500); 3 Dec 2009 20:15:49 -0000 Delivered-To: apmail-ant-notifications-archive@ant.apache.org Received: (qmail 46579 invoked by uid 500); 3 Dec 2009 20:15:47 -0000 Mailing-List: contact notifications-help@ant.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ant.apache.org Delivered-To: mailing list notifications@ant.apache.org Received: (qmail 46129 invoked by uid 99); 3 Dec 2009 20:15:46 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 03 Dec 2009 20:15:46 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 03 Dec 2009 20:15:42 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id D9831234C4AE for ; Thu, 3 Dec 2009 12:15:20 -0800 (PST) Message-ID: <1857437880.1259871320889.JavaMail.jira@brutus> Date: Thu, 3 Dec 2009 20:15:20 +0000 (UTC) From: "Maarten Coene (JIRA)" To: notifications@ant.apache.org Subject: [jira] Resolved: (IVY-1147) Use of a shared DocumentBuilder causes SAXException during parallel resolutions In-Reply-To: <1612916698.1259857424947.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/IVY-1147?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Maarten Coene resolved IVY-1147. -------------------------------- Resolution: Fixed Fix Version/s: trunk Assignee: Maarten Coene Fixed in trunk. Both DocumentBuilderFactory and DocumentBuilder aren't required to be thread-safe, so we always recreate them now; Could you give it a try (if possible) to see if it solves your problems? thanks, Maarten > 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: trunk > > > 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.(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.