Author: gseitz
Date: Sat Nov  3 13:58:39 2007
New Revision: 591686

URL: http://svn.apache.org/viewvc?rev=591686&view=rev
Log:
WICKET-1125: SmartLinkLabel parser error

Modified:
    
wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/LinkParser.java

Modified: 
wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/LinkParser.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/LinkParser.java?rev=591686&r1=591685&r2=591686&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/LinkParser.java
 (original)
+++ 
wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/basic/LinkParser.java
 Sat Nov  3 13:58:39 2007
@@ -22,7 +22,6 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.wicket.util.string.Strings;
 
 /**
  * This base implementation iterates over all provided 
<code>ILinkRenderStrategy</code>
@@ -32,7 +31,7 @@
  */
 public class LinkParser implements ILinkParser
 {
-       private Map renderStrategies = new HashMap();
+       private final Map renderStrategies = new HashMap();
 
        /**
         * Adds a render strategy to the parser.
@@ -55,7 +54,7 @@
         */
        public String parse(String text)
        {
-               if ((text == null) || (text == ""))
+               if ((text == null) || ("".equals(text)))
                {
                        return text;
                }
@@ -64,16 +63,18 @@
                Iterator iter = renderStrategies.keySet().iterator();
                while (iter.hasNext())
                {
-                       String pattern = (String)iter.next();
+                       String pattern = (String) iter.next();
                        ILinkRenderStrategy strategy = 
(ILinkRenderStrategy)renderStrategies.get(pattern);
 
                        Matcher matcher = Pattern.compile(pattern, 
Pattern.DOTALL).matcher(work);
+                       StringBuffer buffer = new StringBuffer();
                        while (matcher.find())
                        {
                                String str = matcher.group();
-                               String result = strategy.buildLink(str);
-                               work = Strings.replaceAll(work, str, 
result).toString();
+                               matcher.appendReplacement(buffer, 
strategy.buildLink(str));
                        }
+                       matcher.appendTail(buffer);
+                       work = buffer.toString();
                }
                return work;
        }


Reply via email to