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;
}