From 859ece142d7941cb567885cd23d81432017683ba Mon Sep 17 00:00:00 2001 From: rfeng Date: Wed, 27 Jul 2011 23:20:34 +0000 Subject: Add a parser tool for DOM to avoid a JDK bug of deadlock (at com.sun.org.apache.xerces.internal.impl.dv.DTDDVFactory.getInstance) git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1151663 13f79535-47bb-0310-9956-ffa450edef68 --- .../sca/common/xml/dom/DOMHelperTestCase.java | 27 +++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'sca-java-2.x/trunk/modules/common-xml/src/test') diff --git a/sca-java-2.x/trunk/modules/common-xml/src/test/java/org/apache/tuscany/sca/common/xml/dom/DOMHelperTestCase.java b/sca-java-2.x/trunk/modules/common-xml/src/test/java/org/apache/tuscany/sca/common/xml/dom/DOMHelperTestCase.java index 176ea35c1c..1be852ba05 100644 --- a/sca-java-2.x/trunk/modules/common-xml/src/test/java/org/apache/tuscany/sca/common/xml/dom/DOMHelperTestCase.java +++ b/sca-java-2.x/trunk/modules/common-xml/src/test/java/org/apache/tuscany/sca/common/xml/dom/DOMHelperTestCase.java @@ -20,13 +20,15 @@ package org.apache.tuscany.sca.common.xml.dom; import static org.junit.Assert.assertNotNull; -import junit.framework.Assert; + +import javax.xml.parsers.DocumentBuilder; import org.apache.tuscany.sca.common.xml.sax.SAXHelper; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.custommonkey.xmlunit.XMLAssert; import org.junit.AfterClass; +import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import org.w3c.dom.Document; @@ -78,4 +80,27 @@ public class DOMHelperTestCase { XMLAssert.assertXMLEqual(XML, xml); } + @Test + public void testPool() { + DOMHelper helper = DOMHelper.getInstance(registry); + + DocumentBuilder buidler1 = helper.newDocumentBuilder(); + Assert.assertTrue(helper.builderPool.getObjects().get(buidler1)); + + Assert.assertEquals(1, helper.builderPool.inUse()); + + DocumentBuilder buidler2 = helper.newDocumentBuilder(); + Assert.assertTrue(helper.builderPool.getObjects().get(buidler2)); + Assert.assertEquals(2, helper.builderPool.inUse()); + + helper.returnDocumentBuilder(buidler2); + Assert.assertFalse(helper.builderPool.getObjects().get(buidler2)); + Assert.assertEquals(1, helper.builderPool.inUse()); + + helper.returnDocumentBuilder(buidler1); + Assert.assertFalse(helper.builderPool.getObjects().get(buidler1)); + Assert.assertEquals(0, helper.builderPool.inUse()); + + } + } -- cgit v1.2.3