Author: darran.lofthouse(a)jboss.com
Date: 2008-09-25 11:23:24 -0400 (Thu, 25 Sep 2008)
New Revision: 8232
Modified:
common/branches/dlofthouse/JBWS-2323/src/main/java/org/jboss/wsf/common/DOMUtils.java
Log:
Added property 'org.jboss.ws.disable_deferred_node_expansion'
Modified:
common/branches/dlofthouse/JBWS-2323/src/main/java/org/jboss/wsf/common/DOMUtils.java
===================================================================
---
common/branches/dlofthouse/JBWS-2323/src/main/java/org/jboss/wsf/common/DOMUtils.java 2008-09-25
15:06:13 UTC (rev 8231)
+++
common/branches/dlofthouse/JBWS-2323/src/main/java/org/jboss/wsf/common/DOMUtils.java 2008-09-25
15:23:24 UTC (rev 8232)
@@ -67,10 +67,11 @@
{
private static Logger log = Logger.getLogger(DOMUtils.class);
+ private static final String DISABLE_DEFERRED_NODE_EXPANSION =
"org.jboss.ws.disable_deferred_node_expansion";
+
// All elements created by the same thread are created by the same builder and belong
to the same doc
private static ThreadLocal<Document> documentThreadLocal = new
ThreadLocal<Document>();
- private static ThreadLocal<DocumentBuilder> builderThreadLocal = new
ThreadLocal<DocumentBuilder>()
- {
+ private static ThreadLocal<DocumentBuilder> builderThreadLocal = new
ThreadLocal<DocumentBuilder>() {
protected DocumentBuilder initialValue()
{
try
@@ -78,6 +79,13 @@
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(false);
factory.setNamespaceAware(true);
+
+ boolean disableDeferredNodeExpansion =
Boolean.getBoolean(DISABLE_DEFERRED_NODE_EXPANSION);
+ if (disableDeferredNodeExpansion == true)
+ {
+
factory.setFeature("http://apache.org/xml/features/dom/defer-node-ex...;,
false);
+ }
+
DocumentBuilder builder = factory.newDocumentBuilder();
setEntityResolver(builder);
return builder;
@@ -297,7 +305,8 @@
String attr = null;
if ("".equals(attrName.getNamespaceURI()))
attr = el.getAttribute(attrName.getLocalPart());
- else attr = el.getAttributeNS(attrName.getNamespaceURI(),
attrName.getLocalPart());
+ else
+ attr = el.getAttributeNS(attrName.getNamespaceURI(), attrName.getLocalPart());
if ("".equals(attr))
attr = null;
@@ -408,7 +417,7 @@
NodeList nodeList = node.getChildNodes();
if (nodeList.getLength() == 0)
return false;
-
+
for (int i = 0; i < nodeList.getLength(); i++)
{
Node acksToChildNode = nodeList.item(i);
@@ -512,17 +521,17 @@
{
return getChildElementsIntern(node, nodeName);
}
-
+
public static List<Element> getChildElementsAsList(Node node, String nodeName)
{
return getChildElementsAsListIntern(node, new QName(nodeName));
}
-
+
public static List<Element> getChildElementsAsList(Node node, QName nodeName)
{
return getChildElementsAsListIntern(node, nodeName);
}
-
+
private static List<Element> getChildElementsAsListIntern(Node node, QName
nodeName)
{
List<Element> list = new LinkedList<Element>();