Author: jochen
Date: Sun May  7 13:48:51 2006
New Revision: 404846

URL: http://svn.apache.org/viewcvs?rev=404846&view=rev
Log:
HTTP/1.0 (which is the only version supported by the Lite HTTP transport)
requires the presence of a valid content-length header. Consequently,
the Lite HTTP transport will from now on reject the contentLengthOptional
setting.

Modified:
    
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcHttpTransport.java
    
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcLiteHttpTransport.java
    webservices/xmlrpc/trunk/src/changes/changes.xml

Modified: 
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcHttpTransport.java
URL: 
http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcHttpTransport.java?rev=404846&r1=404845&r2=404846&view=diff
==============================================================================
--- 
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcHttpTransport.java
 (original)
+++ 
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcHttpTransport.java
 Sun May  7 13:48:51 2006
@@ -94,8 +94,8 @@
                initHttpHeaders(pRequest);
                return super.sendRequest(pRequest);
        }
-       
-       protected boolean isUsingByteArrayOutput(XmlRpcHttpClientConfig 
pConfig) {
+
+       protected boolean isUsingByteArrayOutput(XmlRpcHttpClientConfig 
pConfig) throws XmlRpcException {
                return !pConfig.isEnabledForExtensions()
                        || !pConfig.isContentLengthOptional();
        }

Modified: 
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcLiteHttpTransport.java
URL: 
http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcLiteHttpTransport.java?rev=404846&r1=404845&r2=404846&view=diff
==============================================================================
--- 
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcLiteHttpTransport.java
 (original)
+++ 
webservices/xmlrpc/trunk/client/src/main/java/org/apache/xmlrpc/client/XmlRpcLiteHttpTransport.java
 Sun May  7 13:48:51 2006
@@ -231,7 +231,15 @@
                }
        }
 
-       protected void writeRequest(RequestWriter pWriter) throws 
XmlRpcException {
+       protected boolean isUsingByteArrayOutput(XmlRpcHttpClientConfig 
pConfig) throws XmlRpcException {
+           boolean result = super.isUsingByteArrayOutput(pConfig);
+        if (!result) {
+            throw new XmlRpcException("The Content-Length header is required 
with HTTP/1.0, and HTTP/1.1 is unsupported by the Lite HTTP Transport.");
+        }
+        return result;
+    }
+
+    protected void writeRequest(RequestWriter pWriter) throws XmlRpcException {
                OutputStream ostream = getOutputStream();
                pWriter.write(ostream);
        }

Modified: webservices/xmlrpc/trunk/src/changes/changes.xml
URL: 
http://svn.apache.org/viewcvs/webservices/xmlrpc/trunk/src/changes/changes.xml?rev=404846&r1=404845&r2=404846&view=diff
==============================================================================
--- webservices/xmlrpc/trunk/src/changes/changes.xml (original)
+++ webservices/xmlrpc/trunk/src/changes/changes.xml Sun May  7 13:48:51 2006
@@ -37,6 +37,11 @@
         The Base64 encoder doesn't accept buffers of length 0. Such a buffer
         was passed, if the byte array to encode has itself length 0.
       </action>
+      <action dev="jochen" type="fix" issue="XMLRPC-79">
+        HTTP/1.0 requires a content-length header. The Lite HTTP transport
+        doesn't support HTTP/1.1, so it refuses the "contentLengthOptional"
+        setting from now on.
+      </action>
     </release>
     <release version="3.0a1" date="17-Feb-2005">
       <action dev="jochen" type="enhancement">


Reply via email to