cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dk...@apache.org
Subject svn commit: r946237 - in /cxf/branches/2.2.x-fixes: ./ common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/DispatchImpl.java
Date Wed, 19 May 2010 15:51:53 GMT
Author: dkulp
Date: Wed May 19 15:51:53 2010
New Revision: 946237

URL: http://svn.apache.org/viewvc?rev=946237&view=rev
Log:
Merged revisions 946235 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r946235 | dkulp | 2010-05-19 11:47:35 -0400 (Wed, 19 May 2010) | 1 line
  
  Handle some cases where empty source objects are passed.
........

Modified:
    cxf/branches/2.2.x-fixes/   (props changed)
    cxf/branches/2.2.x-fixes/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
    cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/DispatchImpl.java

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.2.x-fixes/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java?rev=946237&r1=946236&r2=946237&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
(original)
+++ cxf/branches/2.2.x-fixes/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
Wed May 19 15:51:53 2010
@@ -352,28 +352,42 @@ public final class StaxUtils {
     }
     public static void copy(Source source, XMLStreamWriter writer) throws XMLStreamException
{
         if (source instanceof SAXSource) {
-            InputSource src = ((SAXSource)source).getInputSource();
-            if (src.getSystemId() == null && src.getPublicId() == null
-                && ((SAXSource)source).getXMLReader() != null) {
-                //OK - reader is OK.  We'll use that out
-                StreamWriterContentHandler ch = new StreamWriterContentHandler(writer);
-                XMLReader reader = ((SAXSource)source).getXMLReader();
-                reader.setContentHandler(ch);
-                try {
+            SAXSource ss = (SAXSource)source;
+            InputSource src = ss.getInputSource();
+            if (src == null || (src.getSystemId() == null && src.getPublicId() ==
null)) {
+                if (ss.getXMLReader() != null) {
+                    //OK - reader is OK.  We'll use that out
+                    StreamWriterContentHandler ch = new StreamWriterContentHandler(writer);
+                    XMLReader reader = ((SAXSource)source).getXMLReader();
+                    reader.setContentHandler(ch);
                     try {
-                        reader.setFeature("http://xml.org/sax/features/namespaces", true);
-                    } catch (Throwable t) {
-                        //ignore
+                        try {
+                            reader.setFeature("http://xml.org/sax/features/namespaces", true);
+                        } catch (Throwable t) {
+                            //ignore
+                        }
+                        reader.parse(((SAXSource)source).getInputSource());
+                        return;
+                    } catch (Exception e) {
+                        throw new XMLStreamException(e);
                     }
-                    reader.parse(((SAXSource)source).getInputSource());
+                } else if (ss.getInputSource() == null) {
+                    //nothing to copy, just return
                     return;
-                } catch (Exception e) {
-                    throw new XMLStreamException(e);
                 }
             }
        
         }
-        
+
+        if (source instanceof StreamSource) {
+            StreamSource ss = (StreamSource)source;
+            if (ss.getInputStream() == null
+                && ss.getReader() == null
+                && ss.getSystemId() == null) {
+                //nothing to copy, just return
+                return;
+            }
+        }
         XMLStreamReader reader = createXMLStreamReader(source);
         copy(reader, writer);
         reader.close();

Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/DispatchImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/DispatchImpl.java?rev=946237&r1=946236&r2=946237&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/DispatchImpl.java
(original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/DispatchImpl.java
Wed May 19 15:51:53 2010
@@ -262,7 +262,7 @@ public class DispatchImpl<T> implements 
             }
             Object ret[] = client.invokeWrapped(opName,
                                                 obj);
-            if (isOneWay) {
+            if (isOneWay || ret == null || ret.length == 0) {
                 return null;
             }
             return (T)ret[0];



Mime
View raw message