You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ba...@apache.org on 2006/04/18 09:23:06 UTC
svn commit: r394875 - in /jakarta/commons/proper/lang/trunk/src:
java/org/apache/commons/lang/Entities.java
test/org/apache/commons/lang/StringEscapeUtilsTest.java
Author: bayard
Date: Tue Apr 18 00:23:02 2006
New Revision: 394875
URL: http://svn.apache.org/viewcvs?rev=394875&view=rev
Log:
Fixing issue #38569
Modified:
jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/Entities.java
jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/StringEscapeUtilsTest.java
Modified: jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/Entities.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/Entities.java?rev=394875&r1=394874&r2=394875&view=diff
==============================================================================
--- jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/Entities.java (original)
+++ jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/Entities.java Tue Apr 18 00:23:02 2006
@@ -820,6 +820,12 @@
buf.append(ch);
continue;
}
+ int amph = str.indexOf('&', i + 1);
+ if( amph != -1 && amph < semi ) {
+ // Then the text looks like &...&...;
+ buf.append(ch);
+ continue;
+ }
String entityName = str.substring(i + 1, semi);
int entityValue;
if (entityName.length() == 0) {
@@ -880,6 +886,12 @@
int nextIdx = i+1;
int semiColonIdx = string.indexOf(';', nextIdx);
if (semiColonIdx == -1) {
+ writer.write(c);
+ continue;
+ }
+ int amphersandIdx = string.indexOf('&', i + 1);
+ if( amphersandIdx != -1 && amphersandIdx < semiColonIdx ) {
+ // Then the text looks like &...&...;
writer.write(c);
continue;
}
Modified: jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/StringEscapeUtilsTest.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/StringEscapeUtilsTest.java?rev=394875&r1=394874&r2=394875&view=diff
==============================================================================
--- jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/StringEscapeUtilsTest.java (original)
+++ jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/StringEscapeUtilsTest.java Tue Apr 18 00:23:02 2006
@@ -302,5 +302,14 @@
assertEquals("", StringEscapeUtils.escapeSql(""));
assertEquals(null, StringEscapeUtils.escapeSql(null));
}
-}
+ // Tests issue #38569
+ // http://issues.apache.org/bugzilla/show_bug.cgi?id=38569
+ public void testStandaloneAmphersand() {
+ assertEquals("<P&O>", StringEscapeUtils.unescapeHtml("<P&O>"));
+ assertEquals("test & <", StringEscapeUtils.unescapeHtml("test & <"));
+ assertEquals("<P&O>", StringEscapeUtils.unescapeXml("<P&O>"));
+ assertEquals("test & <", StringEscapeUtils.unescapeXml("test & <"));
+ }
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org