Author: veithen
Date: Sat Jun 25 11:24:03 2011
New Revision: 1139523
URL: http://svn.apache.org/viewvc?rev=1139523&view=rev
Log:
AXIS2-5078: Merged r1139448 to the 1.6 branch.
Modified:
axis/axis2/java/core/branches/1_6/ (props changed)
axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/transport/http/util/QueryStringParser.java
axis/axis2/java/core/branches/1_6/modules/kernel/test/org/apache/axis2/transport/http/util/QueryStringParserTest.java
Propchange: axis/axis2/java/core/branches/1_6/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Jun 25 11:24:03 2011
@@ -1 +1 @@
-/axis/axis2/java/core/trunk:1070439,1072077,1072271,1072499,1072510,1078242,1081563,1081587,1081590,1082316,1082322,1082600,1082702,1082726,1082738,1083180,1083192,1083379,1083381,1083425,1083433,1083446,1084753,1085514,1087073,1088239,1088248-1088249,1088251,1088268,1091178,1091191,1099385,1099389,1100628,1101037,1103013,1103606,1103760,1128580,1128584,1128618,1128645,1130590,1131425,1134438,1134616,1136156,1136159,1137153,1137159,1138144,1138203
+/axis/axis2/java/core/trunk:1070439,1072077,1072271,1072499,1072510,1078242,1081563,1081587,1081590,1082316,1082322,1082600,1082702,1082726,1082738,1083180,1083192,1083379,1083381,1083425,1083433,1083446,1084753,1085514,1087073,1088239,1088248-1088249,1088251,1088268,1091178,1091191,1099385,1099389,1100628,1101037,1103013,1103606,1103760,1128580,1128584,1128618,1128645,1130590,1131425,1134438,1134616,1136156,1136159,1137153,1137159,1138144,1138203,1139448
Modified:
axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/transport/http/util/QueryStringParser.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/transport/http/util/QueryStringParser.java?rev=1139523&r1=1139522&r2=1139523&view=diff
==============================================================================
---
axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/transport/http/util/QueryStringParser.java
(original)
+++
axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/transport/http/util/QueryStringParser.java
Sat Jun 25 11:24:03 2011
@@ -32,7 +32,7 @@ public class QueryStringParser {
* The position of the current parameter.
*/
private int paramBegin;
- private int paramEnd;
+ private int paramEnd = -1;
private int paramNameEnd;
private String paramName;
private String paramValue;
@@ -55,17 +55,21 @@ public class QueryStringParser {
*/
public boolean next() {
int len = queryString.length();
- if (paramEnd == len) {
- return false;
+ while (true) {
+ if (paramEnd == len) {
+ return false;
+ }
+ paramBegin = paramEnd == -1 ? 0 : paramEnd+1;
+ int idx = queryString.indexOf('&', paramBegin);
+ paramEnd = idx == -1 ? len : idx;
+ if (paramEnd > paramBegin) {
+ idx = queryString.indexOf('=', paramBegin);
+ paramNameEnd = idx == -1 || idx > paramEnd ? paramEnd : idx;
+ paramName = null;
+ paramValue = null;
+ return true;
+ }
}
- paramBegin = paramEnd == 0 ? 0 : paramEnd+1;
- int idx = queryString.indexOf('&', paramBegin);
- paramEnd = idx == -1 ? len : idx;
- idx = queryString.indexOf('=', paramBegin);
- paramNameEnd = idx == -1 || idx > paramEnd ? paramEnd : idx;
- paramName = null;
- paramValue = null;
- return true;
}
/**
Modified:
axis/axis2/java/core/branches/1_6/modules/kernel/test/org/apache/axis2/transport/http/util/QueryStringParserTest.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/kernel/test/org/apache/axis2/transport/http/util/QueryStringParserTest.java?rev=1139523&r1=1139522&r2=1139523&view=diff
==============================================================================
---
axis/axis2/java/core/branches/1_6/modules/kernel/test/org/apache/axis2/transport/http/util/QueryStringParserTest.java
(original)
+++
axis/axis2/java/core/branches/1_6/modules/kernel/test/org/apache/axis2/transport/http/util/QueryStringParserTest.java
Sat Jun 25 11:24:03 2011
@@ -78,4 +78,13 @@ public class QueryStringParserTest exten
assertEquals("20% down", p.getValue());
assertFalse(p.next());
}
+
+ // Regression test for AXIS2-5078
+ public void testEmptyParameter() {
+ QueryStringParser p = new QueryStringParser("&name=value");
+ assertTrue(p.next());
+ assertEquals("name", p.getName());
+ assertEquals("value", p.getValue());
+ assertFalse(p.next());
+ }
}