Index: /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/FCKeditor.java
===================================================================
--- /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/FCKeditor.java (revision 2576)
+++ /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/FCKeditor.java (revision 2577)
@@ -204,17 +204,36 @@
*/
private String escapeXml(String str) {
- if (Utils.isEmpty(str))
- return str;
-
- /*
- * TODO Strings are inefficient. It should be done like in Commons Lang
- * 2.4 StringUtils#replaceEach(String, String[], String[])
- */
- str = str.replaceAll("&", "&");
- str = str.replaceAll("<", "<");
- str = str.replaceAll(">", ">");
- str = str.replaceAll("\"", """);
- str = str.replaceAll("'", "'");
- return str;
+
+ StringBuffer sb = new StringBuffer();
+
+ int len = str.length();
+ char c;
+
+ for (int i = 0; i < len; i++) {
+
+ c = str.charAt(i);
+ switch (c) {
+ case '&':
+ sb.append("&");
+ break;
+ case '<':
+ sb.append("<");
+ break;
+ case '>':
+ sb.append(">");
+ break;
+ case '"':
+ sb.append(""");
+ break;
+ case '\'':
+ sb.append("'");
+ break;
+ default:
+ sb.append(c);
+ break;
+ }
+ }
+
+ return sb.toString();
}
Index: /FCKeditor.Java/trunk/src/changes/changes.xml
===================================================================
--- /FCKeditor.Java/trunk/src/changes/changes.xml (revision 2576)
+++ /FCKeditor.Java/trunk/src/changes/changes.xml (revision 2577)
@@ -16,5 +16,5 @@
ConnectorServlet#init fails on some application servers
Add more logging statements
-
+ Move escapeXml method to a StringBuffer