Author: jochen
Date: Sat Oct 27 11:14:40 2007
New Revision: 589165
URL: http://svn.apache.org/viewvc?rev=589165&view=rev
Log:
Ensured that the server replies with a spec compliant request,
if the client uses the content-length header.
PR: XMLRPC-148
Submitted-By: Andreas Sahlbach, [EMAIL PROTECTED]
Modified:
webservices/xmlrpc/trunk/.classpath
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/webserver/XmlRpcServletServer.java
webservices/xmlrpc/trunk/src/changes/changes.xml
Modified: webservices/xmlrpc/trunk/.classpath
URL:
http://svn.apache.org/viewvc/webservices/xmlrpc/trunk/.classpath?rev=589165&r1=589164&r2=589165&view=diff
==============================================================================
--- webservices/xmlrpc/trunk/.classpath (original)
+++ webservices/xmlrpc/trunk/.classpath Sat Oct 27 11:14:40 2007
@@ -5,7 +5,7 @@
<classpathentry kind="src" output="server/target/classes"
path="server/src/main/java"/>
<classpathentry kind="src" path="tests/src/test/java"/>
<classpathentry kind="src" path="tests/src/test/resources"/>
- <classpathentry kind="con"
path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="con"
path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER/modules"/>
<classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
<classpathentry kind="output" path="tests/target/test-classes"/>
</classpath>
Modified:
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/webserver/XmlRpcServletServer.java
URL:
http://svn.apache.org/viewvc/webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/webserver/XmlRpcServletServer.java?rev=589165&r1=589164&r2=589165&view=diff
==============================================================================
---
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/webserver/XmlRpcServletServer.java
(original)
+++
webservices/xmlrpc/trunk/server/src/main/java/org/apache/xmlrpc/webserver/XmlRpcServletServer.java
Sat Oct 27 11:14:40 2007
@@ -25,6 +25,7 @@
import org.apache.xmlrpc.XmlRpcException;
import org.apache.xmlrpc.common.ServerStreamConnection;
+import org.apache.xmlrpc.common.XmlRpcHttpRequestConfig;
import org.apache.xmlrpc.common.XmlRpcHttpRequestConfigImpl;
import org.apache.xmlrpc.common.XmlRpcStreamRequestConfig;
import org.apache.xmlrpc.server.XmlRpcHttpServer;
@@ -75,7 +76,8 @@
XmlRpcHttpRequestConfigImpl result = newConfig(pRequest);
XmlRpcHttpServerConfig serverConfig = (XmlRpcHttpServerConfig)
getConfig();
result.setBasicEncoding(serverConfig.getBasicEncoding());
-
result.setContentLengthOptional(serverConfig.isContentLengthOptional());
+
result.setContentLengthOptional(serverConfig.isContentLengthOptional()
+ && (pRequest.getHeader("Content-Length") == null));
result.setEnabledForExtensions(serverConfig.isEnabledForExtensions());
result.setGzipCompressing(HttpUtil.isUsingGzipEncoding(pRequest.getHeader("Content-Encoding")));
result.setGzipRequesting(HttpUtil.isUsingGzipEncoding(pRequest.getHeaders("Accept-Encoding")));
@@ -114,7 +116,11 @@
// The spec requires a content-length.
return true;
}
- return !((XmlRpcHttpServerConfig)
getConfig()).isContentLengthOptional();
+ boolean isRequired = !((XmlRpcHttpServerConfig)
getConfig()).isContentLengthOptional();
+ if(pConfig instanceof XmlRpcHttpRequestConfig) {
+ isRequired |=
!((XmlRpcHttpRequestConfig)pConfig).isContentLengthOptional();
+ }
+ return isRequired;
}
protected OutputStream getOutputStream(XmlRpcStreamRequestConfig
pConfig,
Modified: webservices/xmlrpc/trunk/src/changes/changes.xml
URL:
http://svn.apache.org/viewvc/webservices/xmlrpc/trunk/src/changes/changes.xml?rev=589165&r1=589164&r2=589165&view=diff
==============================================================================
--- webservices/xmlrpc/trunk/src/changes/changes.xml (original)
+++ webservices/xmlrpc/trunk/src/changes/changes.xml Sat Oct 27 11:14:40 2007
@@ -11,6 +11,11 @@
issue="XMLRPC-149">
It is now possible to set the clients user-agent header in the client
configuration.
</action>
+ <action dev="jochen" type="fix" due-to="Andreas Sahlbach"
due-to-email="[EMAIL PROTECTED]"
+ issue="XMLRPC-148">
+ Ensured that the server replies with a spec compliant request, if the
client uses the
+ content-length header.
+ </action>
</release>
<release version="3.1" date="2007-Aug-31">
<action dev="jochen" type="add">