286756 Reusable asset icon cannot be shown in search result of published site
diff --git a/org.eclipse.epf.web.search/src/org/eclipse/epf/web/search/utils/StrUtil.java b/org.eclipse.epf.web.search/src/org/eclipse/epf/web/search/utils/StrUtil.java
index 08d4608..a2b5970 100644
--- a/org.eclipse.epf.web.search/src/org/eclipse/epf/web/search/utils/StrUtil.java
+++ b/org.eclipse.epf.web.search/src/org/eclipse/epf/web/search/utils/StrUtil.java
@@ -3,7 +3,10 @@
 //------------------------------------------------------------------------------
 package org.eclipse.epf.web.search.utils;
 
+import java.util.LinkedList;
 import java.util.List;
+import java.util.ListIterator;
+
 import com.ibm.icu.util.StringTokenizer;
 
 /**
@@ -467,6 +470,23 @@
 	}
 
 	public static String convertFirstLetterCase(String s, String[] keyWords) {
+		//need to rearrange the KeyWords list in order to avoid unexpected replacement.
+		List newKeyWordList = new LinkedList();
+		for(int i = 0; i < keyWords.length; i++){
+			ListIterator iter = newKeyWordList.listIterator();
+			int index = 0;
+			while(iter.hasNext()){
+				String keyWord = (String)iter.next();
+				if(keyWord.toLowerCase().indexOf(keyWords[i].toLowerCase()) >= 0){
+					break;
+				}
+				index++;
+			}
+			newKeyWordList.add(index, keyWords[i]);
+		}
+		keyWords = (String[])newKeyWordList.toArray(new String[]{});
+
+		
 		StringBuffer sb = new StringBuffer(s.substring(0, 1).toUpperCase()
 				+ s.substring(1).toLowerCase());
 		int foundIndex;