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]>

Reply via email to