Index: java/org/apache/commons/httpclient/methods/PostMethod.java =================================================================== RCS file: /home/cvspublic/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/PostMethod.java,v retrieving revision 1.45.2.2 diff -u -r1.45.2.2 PostMethod.java --- java/org/apache/commons/httpclient/methods/PostMethod.java 9 Aug 2003 19:36:39 -0000 1.45.2.2 +++ java/org/apache/commons/httpclient/methods/PostMethod.java 11 Sep 2003 07:37:01 -0000 @@ -253,7 +253,7 @@ public void setParameter(String parameterName, String parameterValue) { LOG.trace("enter PostMethod.setParameter(String, String)"); - removeParameter(parameterName, parameterValue); + removeParameter(parameterName); addParameter(parameterName, parameterValue); } Index: test/org/apache/commons/httpclient/TestWebappPostMethod.java =================================================================== RCS file: /home/cvspublic/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestWebappPostMethod.java,v retrieving revision 1.3 diff -u -r1.3 TestWebappPostMethod.java --- test/org/apache/commons/httpclient/TestWebappPostMethod.java 5 Mar 2003 04:02:56 -0000 1.3 +++ test/org/apache/commons/httpclient/TestWebappPostMethod.java 11 Sep 2003 07:37:02 -0000 @@ -224,5 +224,19 @@ verifyParams(method); } + /** + * Test if setParameter overwrites existing parameter values. + */ + public void testAddParameterFollowedBySetParameter() throws Exception { + PostMethod method = new PostMethod(paramsPath); + + method.addParameter("param", "a"); + method.addParameter("param", "b"); + method.addParameter("param", "c"); + assertEquals("param=a¶m=b¶m=c", method.getRequestBodyAsString()); + method.setParameter("param", "a"); + assertEquals("param=a", method.getRequestBodyAsString()); + } + }