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 2007/02/06 23:25:58 UTC
svn commit: r504334 -
/jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/Entities.java
Author: bayard
Date: Tue Feb 6 14:25:57 2007
New Revision: 504334
URL: http://svn.apache.org/viewvc?view=rev&rev=504334
Log:
Replacing the optimisation for LANG-287.
Modified:
jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/Entities.java
Modified: jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/Entities.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/Entities.java?view=diff&rev=504334&r1=504333&r2=504334
==============================================================================
--- 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 Feb 6 14:25:57 2007
@@ -858,15 +858,20 @@
* @return A new escaped <code>String</code>.
*/
public String unescape(String str) {
- StringWriter stringWriter = createStringWriter(str);
- try {
- this.unescape(stringWriter, str);
- } catch (IOException e) {
- // This should never happen because ALL the StringWriter methods called by #escape(Writer, String) do not
- // throw IOExceptions.
- throw new UnhandledException(e);
+ int firstAmp = str.indexOf('&');
+ if (firstAmp < 0) {
+ return str;
+ } else {
+ StringWriter stringWriter = createStringWriter(str);
+ try {
+ this.doUnescape(stringWriter, str, firstAmp);
+ } catch (IOException e) {
+ // This should never happen because ALL the StringWriter methods called by #escape(Writer, String) do not
+ // throw IOExceptions.
+ throw new UnhandledException(e);
+ }
+ return stringWriter.toString();
}
- return stringWriter.toString();
}
private StringWriter createStringWriter(String str) {
@@ -896,8 +901,12 @@
if (firstAmp < 0) {
writer.write(string);
return;
+ } else {
+ doUnescape(writer, string, firstAmp);
}
+ }
+ private void doUnescape(Writer writer, String string, int firstAmp) throws IOException {
writer.write(string, 0, firstAmp);
int len = string.length();
for (int i = firstAmp; i < len; i++) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org