DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12855>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12855 SqlResources.substituteSubString(): more than one replacement of one parameter may fail Summary: SqlResources.substituteSubString(): more than one replacement of one parameter may fail Product: James Version: unspecified Platform: All OS/Version: All Status: NEW Severity: Minor Priority: Other Component: James Core AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] in package org.apache.james.util.SqlResources.substituteSubString() you better should write while ( index > -1 ) { [...] index = input.indexOf(find, index + /*replace_length*/ find_length); } to find all occurrences of one parameter in the input string. TestCase: public void testSubstituteSubString() { String subst = null; subst = sr.substituteSubString("${aa} ${aa}", "${aa}", "Test" ); assertEquals( "double replacement one after another", "Test Test", subst ); subst = sr.substituteSubString("${aa}${aa}", "${aa}", "Test" ); assertEquals( "double replacement one after another without spaces", "TestTest", subst ); subst = sr.substituteSubString("Ein ${k} ${k}", "${k}", "langerTest" ); assertEquals( "double replacement where NEW is longer than OLD", "Ein langerTest langerTest", subst ); subst = sr.substituteSubString("Ein ${keyword} ${keyword}", "${keyword}", "T" ); assertEquals( "double replacement where NEW is shorter than OLD", "Ein T T", subst ); subst = sr.substituteSubString("Ein ${keyword} ${keyword}", "${keyword}", "Testwort12" ); assertEquals( "double replacement where NEW is as long as OLD", "Ein Testwort12 Testwort12", subst ); } -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
