[ https://issues.apache.org/jira/browse/TAP5-1770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13447459#comment-13447459 ]
Hudson commented on TAP5-1770: ------------------------------ Integrated in tapestry-trunk-freestyle #932 (See [https://builds.apache.org/job/tapestry-trunk-freestyle/932/]) TAP5-1770: Fixed 'String index out of range' in PageTester while testing pages with request/events (Revision 4a0780f6e16c71d90042c447875e77060fe62775) Result = FAILURE tawus : Files : * atlassian-ide-plugin.xml * tapestry-core/src/test/groovy/org/apache/tapestry5/test/PageTesterTest.java * tapestry-core/src/test/conf/testng.xml * tapestry-core/src/main/java/org/apache/tapestry5/test/PageTester.java > PageTester causes StringIndexOutOfBoundsException for any page request path > with query parameter > ------------------------------------------------------------------------------------------------ > > Key: TAP5-1770 > URL: https://issues.apache.org/jira/browse/TAP5-1770 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-test > Affects Versions: 5.3 > Reporter: Kevin Lin > Assignee: Taha Hafeez > Fix For: 5.3, 5.4 > > > 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. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira