You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2008/04/21 19:47:47 UTC
svn commit: r650212 - in /webservices/axis2/branches/java/1_4/modules/kernel:
src/org/apache/axis2/builder/XFormURLEncodedBuilder.java
src/org/apache/axis2/engine/Phase.java
test/org/apache/axis2/phaserule/PreDispatchPhaseRuleTest.java
Author: dims
Date: Mon Apr 21 10:47:29 2008
New Revision: 650212
URL: http://svn.apache.org/viewvc?rev=650212&view=rev
Log:
Fix from Keith for AXIS2-3759 and from Deepal/Ruwan for AXIS2-3757
Modified:
webservices/axis2/branches/java/1_4/modules/kernel/src/org/apache/axis2/builder/XFormURLEncodedBuilder.java
webservices/axis2/branches/java/1_4/modules/kernel/src/org/apache/axis2/engine/Phase.java
webservices/axis2/branches/java/1_4/modules/kernel/test/org/apache/axis2/phaserule/PreDispatchPhaseRuleTest.java
Modified: webservices/axis2/branches/java/1_4/modules/kernel/src/org/apache/axis2/builder/XFormURLEncodedBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_4/modules/kernel/src/org/apache/axis2/builder/XFormURLEncodedBuilder.java?rev=650212&r1=650211&r2=650212&view=diff
==============================================================================
--- webservices/axis2/branches/java/1_4/modules/kernel/src/org/apache/axis2/builder/XFormURLEncodedBuilder.java (original)
+++ webservices/axis2/branches/java/1_4/modules/kernel/src/org/apache/axis2/builder/XFormURLEncodedBuilder.java Mon Apr 21 10:47:29 2008
@@ -105,7 +105,7 @@
String query = requestURL;
int index;
- if ((index = requestURL.indexOf("?")) > 0) {
+ if ((index = requestURL.indexOf("?")) > -1) {
query = requestURL.substring(index + 1);
}
@@ -254,9 +254,18 @@
if (templateStartIndex == -1) {
if (templateEndIndex == pathTemplate.length() - 1) {
+ // We may have occations where we have templates of the form foo/{name}.
+ // In this case the next connstant will be ? and not the
+ // queryParameterSeparator
indexOfNextConstant =
requestURIBuffer
- .indexOf(queryParameterSeparator, endIndexOfConstant);
+ .indexOf("?", endIndexOfConstant);
+ if (indexOfNextConstant == -1) {
+ indexOfNextConstant =
+ requestURIBuffer
+ .indexOf(queryParameterSeparator,
+ endIndexOfConstant);
+ }
if (indexOfNextConstant > 0) {
addParameterToMap(parameterMap, parameterName,
requestURIBuffer.substring(endIndexOfConstant,
Modified: webservices/axis2/branches/java/1_4/modules/kernel/src/org/apache/axis2/engine/Phase.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_4/modules/kernel/src/org/apache/axis2/engine/Phase.java?rev=650212&r1=650211&r2=650212&view=diff
==============================================================================
--- webservices/axis2/branches/java/1_4/modules/kernel/src/org/apache/axis2/engine/Phase.java (original)
+++ webservices/axis2/branches/java/1_4/modules/kernel/src/org/apache/axis2/engine/Phase.java Mon Apr 21 10:47:29 2008
@@ -251,8 +251,30 @@
if (beforeIndex > -1) {
handlers.add(beforeIndex, handler);
+ } else if (afterIndex > -1){
+ if (phaseLastSet){
+ if (handlers.size() ==1){
+ handlers.add(0,handler);
+ } else {
+ handlers.add(handlers.size() -2,handler);
+ }
+ } else {
+ if (afterIndex == (handlers.size() -1)) {
+ handlers.add(handler);
+ } else {
+ handlers.add(afterIndex +1,handler);
+ }
+ }
+ } else {
+ if (phaseLastSet) {
+ if (handlers.size() ==1){
+ handlers.add(0,handler);
+ } else {
+ handlers.add(handlers.size() -2,handler);
+ }
} else {
handlers.add(handler);
+ }
}
}
Modified: webservices/axis2/branches/java/1_4/modules/kernel/test/org/apache/axis2/phaserule/PreDispatchPhaseRuleTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_4/modules/kernel/test/org/apache/axis2/phaserule/PreDispatchPhaseRuleTest.java?rev=650212&r1=650211&r2=650212&view=diff
==============================================================================
--- webservices/axis2/branches/java/1_4/modules/kernel/test/org/apache/axis2/phaserule/PreDispatchPhaseRuleTest.java (original)
+++ webservices/axis2/branches/java/1_4/modules/kernel/test/org/apache/axis2/phaserule/PreDispatchPhaseRuleTest.java Mon Apr 21 10:47:29 2008
@@ -121,4 +121,60 @@
System.out.println("Name:" + metadata.getName().getLocalPart());
}*/
}
+
+ public void testPhaseLastAndAfter() throws Exception {
+
+ Phase phase = new Phase();
+
+ //////////////// handler 1 //////////////////////////
+ PhaseRuleHandler h1 = new PhaseRuleHandler("a");
+ HandlerDescription hd1 = new HandlerDescription("a");
+ h1.init(hd1);
+ hd1.setHandler(h1);
+ phase.addHandler(hd1);
+ /////////////////////////////////////////////////////
+
+ //////////////// handler 4 //////////////////////////
+ PhaseRule rule4 = new PhaseRule();
+ rule4.setPhaseLast(true);
+
+ PhaseRuleHandler h4 = new PhaseRuleHandler("d");
+ HandlerDescription hd4 = new HandlerDescription("d");
+ h4.init(hd4);
+
+ hd4.setHandler(h4);
+ hd4.setRules(rule4);
+ phase.addHandler(hd4);
+ ////////////////////////////////////////////////////
+
+ //////////////// handler 2 //////////////////////////
+ PhaseRule rule2 = new PhaseRule();
+ rule2.setAfter("a");
+
+ HandlerDescription hd2 = new HandlerDescription("b");
+ PhaseRuleHandler h2 = new PhaseRuleHandler("b");
+ h2.init(hd2);
+
+ hd2.setHandler(h2);
+ hd2.setRules(rule2);
+ phase.addHandler(hd2);
+ //////////////////////////////////////////////////////
+
+ //////////////// handler 3 //////////////////////////
+ PhaseRule rule3 = new PhaseRule();
+ rule3.setAfter("b");
+
+ HandlerDescription hd3 = new HandlerDescription("c");
+ PhaseRuleHandler h3 = new PhaseRuleHandler("c");
+ h3.init(hd3);
+
+ hd3.setHandler(h3);
+ hd3.setRules(rule3);
+ try {
+ phase.addHandler(hd3);
+ } catch (Exception e) {
+ fail("Adding handlers with after attribute to the phase behaviour failed");
+ }
+ //////////////////////////////////////////////////////
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org