Hi, I was running a web test using the latest source code from testify on a T5.3 application. And I get the following exception for any tests that contains a request/event: java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at java.lang.String.substring(String.java:1937) at java.lang.String.substring(String.java:1904) at org.apache.tapestry5.test.PageTester.setupRequestFromURI(PageTester.java:345) at org.apache.tapestry5.test.PageTester.setupRequestFromLink(PageTester.java:331) at org.apache.tapestry5.test.PageTester.runComponentEventRequest(PageTester.java:313) at org.apache.tapestry5.test.PageTester.clickLinkAndReturnResponse(PageTester.java:264) ...
At bit digging through the code shows that there is mostly a coding bug in org.apache.tapestry5.test.PageTester#setupRequestFromURI() (PageTester.java:345): -------------------- private void setupRequestFromURI(String URI) { String linkPath = stripContextFromPath(URI); int comma = linkPath.indexOf('?'); String path = comma < 0 ? linkPath : linkPath.substring(0, comma); request.clear().setPath(path); if (comma > 0) decodeParametersIntoRequest(path.substring(comma + 1)); } -------------------- The *path* variable is the URL path with the event parameters (?xxx) stripped, trying to substring it again cause the IndexOutOfBounds exception. The correct variable to pass should instead be: *linkPath*. A comparison with the same class file confirms my findings (see attached). My current fix is monkey-patch the PageTester class file. Hopefully this will be fixed in next release of T53. Regards, Kevin Lin
--------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org