You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2017/10/19 17:32:23 UTC

[cxf] 02/02: More use of getEmptyDocument

This is an automated email from the ASF dual-hosted git repository.

dkulp pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git

commit 156be3704e27ac69bbbb1905e99f89b88fc7e454
Author: Daniel Kulp <dk...@apache.org>
AuthorDate: Thu Oct 19 13:10:04 2017 -0400

    More use of getEmptyDocument
---
 .../src/main/java/org/apache/cxf/helpers/DOMUtils.java |  6 +++---
 .../main/java/org/apache/cxf/staxutils/StaxUtils.java  |  6 +++---
 .../interceptors/CorbaStreamFaultInInterceptor.java    |  3 +--
 .../soap/interceptor/AbstractSoapInterceptor.java      |  2 +-
 .../java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java   | 18 +++++++++---------
 .../java/org/apache/cxf/jaxws/spi/ProviderImpl.java    |  8 ++++----
 .../cxf/ws/transfer/shared/faults/WSTransferFault.java |  2 +-
 .../sts/token/validator/UsernameTokenValidator.java    |  2 +-
 .../cxf/sts/token/validator/X509TokenValidator.java    |  4 ++--
 9 files changed, 25 insertions(+), 26 deletions(-)

diff --git a/core/src/main/java/org/apache/cxf/helpers/DOMUtils.java b/core/src/main/java/org/apache/cxf/helpers/DOMUtils.java
index c40e670..10bf393 100644
--- a/core/src/main/java/org/apache/cxf/helpers/DOMUtils.java
+++ b/core/src/main/java/org/apache/cxf/helpers/DOMUtils.java
@@ -153,10 +153,10 @@ public final class DOMUtils {
     
     private static synchronized Document createEmptyDocument() {
         if (emptyDocument == null) {
-            emptyDocument = createDocument();
+            //emptyDocument = createDocument();
             
             // uncomment this to see if anything is actually setting anything into the empty doc
-            /*
+            
             final Document doc  = createDocument();
             emptyDocument = (Document)org.apache.cxf.common.util.ProxyHelper.getProxy(
                 DOMUtils.class.getClassLoader(), 
@@ -170,7 +170,7 @@ public final class DOMUtils {
                         throw new IllegalStateException("Cannot modify factory document");
                     }
                 });
-             */
+             
         }
         return emptyDocument;
     }
diff --git a/core/src/main/java/org/apache/cxf/staxutils/StaxUtils.java b/core/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
index e1e5cf5..71d7f50 100644
--- a/core/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
+++ b/core/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
@@ -1328,7 +1328,7 @@ public final class StaxUtils {
                     return;
                 }
                 parent = stack.pop();
-                if (parent instanceof Document) {
+                if (parent instanceof Document || parent instanceof DocumentFragment) {
                     return;
                 }
                 break;
@@ -1487,7 +1487,7 @@ public final class StaxUtils {
                     return;
                 }
                 parent = context.popFromStack();
-                if (parent instanceof Document) {
+                if (parent instanceof Document || parent instanceof DocumentFragment) {
                     return;
                 }
                 break;
@@ -1569,7 +1569,7 @@ public final class StaxUtils {
                 return parent;
             }
             parent = context.popFromStack();
-            if (parent instanceof Document) {
+            if (parent instanceof Document || parent instanceof DocumentFragment) {
                 return parent;
             }
             break;
diff --git a/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamFaultInInterceptor.java b/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamFaultInInterceptor.java
index 084e070..ccd2638 100644
--- a/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamFaultInInterceptor.java
+++ b/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamFaultInInterceptor.java
@@ -132,9 +132,8 @@ public class CorbaStreamFaultInInterceptor extends AbstractPhaseInterceptor<Mess
     private void createFaultDetail(Document faultData, FaultInfo faultInfo, Fault faultEx) {
         MessagePartInfo partInfo = faultInfo.getMessageParts().get(0);
         QName partInfoName = partInfo.getElementQName();
-        Document faultDoc = DOMUtils.createDocument();
+        Document faultDoc = DOMUtils.getEmptyDocument();
         Element faultElement = faultDoc.createElement("detail");
-        faultDoc.appendChild(faultElement);
         Element partElement =
             faultDoc.createElementNS(partInfoName.getNamespaceURI(), partInfoName.getLocalPart());
 
diff --git a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java
index 94778ad..d06a6f1 100644
--- a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java
+++ b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java
@@ -100,7 +100,7 @@ public abstract class AbstractSoapInterceptor extends AbstractPhaseInterceptor<S
             Element detail = fault.getDetail();
             String soapNamespace = message.getVersion().getNamespace();
             if (detail == null) {
-                Document doc = DOMUtils.newDocument();
+                Document doc = DOMUtils.getEmptyDocument();
                 Element stackTrace = doc.createElementNS(
                     Fault.STACKTRACE_NAMESPACE, Fault.STACKTRACE);
                 stackTrace.setTextContent(sb.toString());
diff --git a/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java b/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java
index f39b18d..a7073b2 100644
--- a/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java
+++ b/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java
@@ -72,7 +72,7 @@ import javax.xml.stream.util.StreamReaderDelegate;
 import javax.xml.transform.stream.StreamResult;
 
 import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
+import org.w3c.dom.DocumentFragment;
 import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
@@ -385,14 +385,14 @@ public final class JAXBEncoderDecoder {
                     QName fname = new QName(attNs, StringUtils.isEmpty(at.name()) ? f.getName() : at.name());
                     ReflectionUtil.setAccessible(f);
                     Object o = Utils.getFieldValue(f, elValue);
-                    Document doc = DOMUtils.newDocument();
-                    writeObject(marshaller, doc, newJAXBElement(fname, String.class, o));
+                    DocumentFragment frag = DOMUtils.getEmptyDocument().createDocumentFragment();
+                    writeObject(marshaller, frag, newJAXBElement(fname, String.class, o));
 
                     if (attNs != null) {
                         writer.writeAttribute(attNs, fname.getLocalPart(),
-                                              DOMUtils.getAllContent(doc.getDocumentElement()));
+                                              DOMUtils.getAllContent(frag));
                     } else {
-                        writer.writeAttribute(fname.getLocalPart(), DOMUtils.getAllContent(doc.getDocumentElement()));
+                        writer.writeAttribute(fname.getLocalPart(), DOMUtils.getAllContent(frag));
                     }
                 }
             }
@@ -405,14 +405,14 @@ public final class JAXBEncoderDecoder {
                     name = Character.toLowerCase(name.charAt(0)) + name.substring(1);
                     XmlAttribute at = m.getAnnotation(XmlAttribute.class);
                     QName mname = new QName(namespace, StringUtils.isEmpty(at.name()) ? name : at.name());
-                    Document doc = DOMUtils.newDocument();
+                    DocumentFragment frag = DOMUtils.getEmptyDocument().createDocumentFragment();
                     Object o = Utils.getMethodValue(m, elValue);
-                    writeObject(marshaller, doc, newJAXBElement(mname, String.class, o));
+                    writeObject(marshaller, frag, newJAXBElement(mname, String.class, o));
                     if (attNs != null) {
                         writer.writeAttribute(attNs, mname.getLocalPart(),
-                                              DOMUtils.getAllContent(doc.getDocumentElement()));
+                                              DOMUtils.getAllContent(frag));
                     } else {
-                        writer.writeAttribute(mname.getLocalPart(), DOMUtils.getAllContent(doc.getDocumentElement()));
+                        writer.writeAttribute(mname.getLocalPart(), DOMUtils.getAllContent(frag));
                     }
                 }
             }
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java
index 4622a79..f3c67df 100644
--- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java
@@ -45,7 +45,7 @@ import javax.xml.ws.spi.Invoker;
 import javax.xml.ws.spi.ServiceDelegate;
 import javax.xml.ws.wsaddressing.W3CEndpointReference;
 
-import org.w3c.dom.Document;
+import org.w3c.dom.DocumentFragment;
 import org.w3c.dom.Element;
 
 import org.apache.cxf.Bus;
@@ -190,10 +190,10 @@ public class ProviderImpl extends javax.xml.ws.spi.Provider {
 
             Unmarshaller um = null;
             try {
-                Document doc = DOMUtils.newDocument();
-                DOMResult result = new DOMResult(doc);
+                DocumentFragment frag = DOMUtils.getEmptyDocument().createDocumentFragment();
+                DOMResult result = new DOMResult(frag);
                 external.writeTo(result);
-                W3CDOMStreamReader reader = new W3CDOMStreamReader(doc.getDocumentElement());
+                W3CDOMStreamReader reader = new W3CDOMStreamReader(frag);
 
                 // CXF internal 2005/08 EndpointReferenceType should be
                 // compatible with W3CEndpointReference
diff --git a/rt/ws/transfer/src/main/java/org/apache/cxf/ws/transfer/shared/faults/WSTransferFault.java b/rt/ws/transfer/src/main/java/org/apache/cxf/ws/transfer/shared/faults/WSTransferFault.java
index 673da39..2e6fce7 100644
--- a/rt/ws/transfer/src/main/java/org/apache/cxf/ws/transfer/shared/faults/WSTransferFault.java
+++ b/rt/ws/transfer/src/main/java/org/apache/cxf/ws/transfer/shared/faults/WSTransferFault.java
@@ -35,7 +35,7 @@ public abstract class WSTransferFault extends SoapFault {
     public WSTransferFault(String reason, String detail, QName faultCode) {
         super(reason, faultCode);
         if (detail != null) {
-            Document doc = DOMUtils.createDocument();
+            Document doc = DOMUtils.getEmptyDocument();
             Element detailEl = doc.createElement("detail");
             detailEl.setTextContent(detail);
             setDetail(detailEl);
diff --git a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/token/validator/UsernameTokenValidator.java b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/token/validator/UsernameTokenValidator.java
index cd4d1dc..fe1fc9f 100644
--- a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/token/validator/UsernameTokenValidator.java
+++ b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/token/validator/UsernameTokenValidator.java
@@ -146,7 +146,7 @@ public class UsernameTokenValidator implements TokenValidator {
             JAXBContext jaxbContext = cache.getContext();
 
             Marshaller marshaller = jaxbContext.createMarshaller();
-            Document doc = DOMUtils.createDocument();
+            Document doc = DOMUtils.getEmptyDocument();
             Element rootElement = doc.createElement("root-element");
             JAXBElement<UsernameTokenType> tokenType =
                 new JAXBElement<UsernameTokenType>(
diff --git a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/token/validator/X509TokenValidator.java b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/token/validator/X509TokenValidator.java
index bc842c9..58b012e 100644
--- a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/token/validator/X509TokenValidator.java
+++ b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/token/validator/X509TokenValidator.java
@@ -148,7 +148,7 @@ public class X509TokenValidator implements TokenValidator {
             //
             // Turn the received JAXB object into a DOM element
             //
-            Document doc = DOMUtils.createDocument();
+            Document doc = DOMUtils.getEmptyDocument();
             binarySecurity = new X509Security(doc);
             binarySecurity.setEncodingType(encodingType);
             binarySecurity.setValueType(binarySecurityType.getValueType());
@@ -158,7 +158,7 @@ public class X509TokenValidator implements TokenValidator {
             binarySecurity.getElement().appendChild(textNode);
         } else if (validateTarget.isDOMElement()) {
             try {
-                Document doc = DOMUtils.createDocument();
+                Document doc = DOMUtils.getEmptyDocument();
                 binarySecurity = new X509Security(doc);
                 binarySecurity.setEncodingType(BASE64_ENCODING);
                 X509Data x509Data = new X509Data((Element)validateTarget.getToken(), "");

-- 
To stop receiving notification emails like this one, please contact
"commits@cxf.apache.org" <co...@cxf.apache.org>.