svn commit: r1139448 - in /axis/axis2/java/core/trunk/modules/kernel: src/org/apache/axis2/transport/http/util/QueryStringParser.java test/org/apache/axis2/transport/http/util/QueryStringParserTest.ja

2011-06-24 Thread veithen
Author: veithen
Date: Fri Jun 24 21:43:40 2011
New Revision: 1139448

URL: http://svn.apache.org/viewvc?rev=1139448&view=rev
Log:
AXIS2-5078: Fixed an issue in QueryStringParser.

Modified:

axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/transport/http/util/QueryStringParser.java

axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/transport/http/util/QueryStringParserTest.java

Modified: 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/transport/http/util/QueryStringParser.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/transport/http/util/QueryStringParser.java?rev=1139448&r1=1139447&r2=1139448&view=diff
==
--- 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/transport/http/util/QueryStringParser.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/transport/http/util/QueryStringParser.java
 Fri Jun 24 21:43:40 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/trunk/modules/kernel/test/org/apache/axis2/transport/http/util/QueryStringParserTest.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/transport/http/util/QueryStringParserTest.java?rev=1139448&r1=1139447&r2=1139448&view=diff
==
--- 
axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/transport/http/util/QueryStringParserTest.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/transport/http/util/QueryStringParserTest.java
 Fri Jun 24 21:43:40 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());
+}
 }




svn commit: r1139484 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java

2011-06-24 Thread deepal
Author: deepal
Date: Sat Jun 25 02:48:11 2011
New Revision: 1139484

URL: http://svn.apache.org/viewvc?rev=1139484&view=rev
Log:
Fixed the request scope Lifecycle destroy method. Now we call the destroy 
method after business logic invocation is completed. 

Modified:

axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java

Modified: 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java?rev=1139484&r1=1139483&r2=1139484&view=diff
==
--- 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java
 Sat Jun 25 02:48:11 2011
@@ -120,6 +120,10 @@ public abstract class AbstractMessageRec
 throw fault;
 }
 } finally {
+//We can call the serviceContext destroy method for request scope 
services
+if 
(Constants.SCOPE_REQUEST.equals(messageCtx.getAxisService().getScope())) {
+
DependencyManager.destroyServiceObject(messageCtx.getServiceContext());
+}
 restoreThreadContext(tc);
 }
 }