[ https://issues.jenkins-ci.org/browse/JENKINS-13896?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joe Hansche closed JENKINS-13896. --------------------------------- Assignee: Sampo Niskanen (was: Joe Hansche) Released as version 1.6 > Exception when multiple end markers present on page > --------------------------------------------------- > > Key: JENKINS-13896 > URL: https://issues.jenkins-ci.org/browse/JENKINS-13896 > Project: Jenkins > Issue Type: Bug > Components: confluence-publisher > Reporter: Sampo Niskanen > Assignee: Sampo Niskanen > > When using the "Replace content between start/end tokens" if the end marker > exists in multiple places on the page, the first marker is selected even if > it is before the start marker. This results in failure with the following > stack trace: > [confluence] Performing wiki edits: Replace content between start/end tokens > ERROR: Publisher com.myyearbook.hudson.plugins.confluence.ConfluencePublisher > aborted due to exception > java.lang.StringIndexOutOfBoundsException > at > java.lang.AbstractStringBuilder.delete(AbstractStringBuilder.java:702) > at java.lang.StringBuffer.delete(StringBuffer.java:373) > at > com.myyearbook.hudson.plugins.confluence.wiki.editors.BetweenTokensEditor.performEdits(BetweenTokensEditor.java:57) > at > com.myyearbook.hudson.plugins.confluence.wiki.editors.MarkupEditor.performReplacement(MarkupEditor.java:57) > at > com.myyearbook.hudson.plugins.confluence.ConfluencePublisher.performEdits(ConfluencePublisher.java:394) > at > com.myyearbook.hudson.plugins.confluence.ConfluencePublisher.performWikiReplacements(ConfluencePublisher.java:353) > at > com.myyearbook.hudson.plugins.confluence.ConfluencePublisher.perform(ConfluencePublisher.java:327) > at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:36) > at > hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:710) > at > hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:685) > at hudson.model.Build$RunnerImpl.post2(Build.java:162) > at > hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:632) > at hudson.model.Run.run(Run.java:1459) > at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) > at hudson.model.ResourceController.execute(ResourceController.java:88) > at hudson.model.Executor.run(Executor.java:239) > The fix for this is trivial, just search for the next end token *after* the > start token. I.e. change line 45 in BetweenTokensEditor.java from > final int end = content.indexOf(endMarkerToken); > to > final int end = content.indexOf(endMarkerToken, start); > Ideally both start and end token is unique on the page, but for example when > using the DIV macro to create a page portion to replace the end token is > always "</ac:rich-text-body></ac:macro>". -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jenkins-ci.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira