--- a/jdk/src/share/classes/javax/swing/text/html/parser/Parser.java Wed Apr 06 11:51:39 2011 +0400
+++ b/jdk/src/share/classes/javax/swing/text/html/parser/Parser.java Wed Apr 06 12:05:38 2011 +0400
@@ -966,6 +966,9 @@
char data[] = {'&'};
return data;
}
+
+ boolean semicolon = false;
+
switch (ch) {
case '\n':
ln++;
@@ -985,6 +988,8 @@
break;
case ';':
+ semicolon = true;
+
ch = readCh();
break;
}
@@ -1006,7 +1011,7 @@
return new char[0];
}
/* given that there is not a match restore the entity reference */
- String str = "&" + nm + ";";
+ String str = "&" + nm + (semicolon ? ";" : "");
char b[] = new char[str.length()];
str.getChars(0, b.length, b, 0);