[WICKET-6988] String.format is replaced with concatenation of strings
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
index da947ee..e2e7eee 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
@@ -201,8 +201,7 @@
timerId = getTimerId();
headerResponse.render(
- OnLoadHeaderItem.forScript(String.format("Wicket.Timer.set('%s', function(){%s}, %d);",
- timerId, js, updateInterval.getMilliseconds())));
+ OnLoadHeaderItem.forScript("Wicket.Timer.set('" + timerId + "', function(){" + js + "}, " + updateInterval.getMilliseconds() + ");"));
}
private void clearTimeout(IHeaderResponse headerResponse)
diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/AjaxTimerBehaviorTest.java b/wicket-core/src/test/java/org/apache/wicket/ajax/AjaxTimerBehaviorTest.java
index d8c2392..3612757 100644
--- a/wicket-core/src/test/java/org/apache/wicket/ajax/AjaxTimerBehaviorTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/ajax/AjaxTimerBehaviorTest.java
@@ -27,6 +27,8 @@
import org.apache.wicket.util.tester.WicketTestCase;
import org.apache.wicket.util.time.Duration;
import org.junit.Test;
+import java.util.Locale;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -82,7 +84,6 @@
assertMatches("Wicket.Timer.set", 1);
}
-
/**
* tests timer behavior in a WebPage.
*/
@@ -204,6 +205,7 @@
{
final AbstractAjaxTimerBehavior timer = new AbstractAjaxTimerBehavior(Duration.seconds(20))
{
+ private static final long serialVersionUID = 1L;
private boolean enabled = true;
@Override
@@ -332,6 +334,49 @@
}
/**
+ * Tests timer behavior in a component added to an AjaxRequestTarget
+ */
+ @Test
+ public void arabicAddedInAjaxSetsTimout()
+ {
+ Locale def = Locale.getDefault();
+ try {
+ Locale.setDefault(Locale.forLanguageTag("ar-EG"));
+ Duration dur = Duration.seconds(20);
+ final AjaxSelfUpdatingTimerBehavior timer = new AjaxSelfUpdatingTimerBehavior(dur);
+ final MockPageWithLinkAndComponent page = new MockPageWithLinkAndComponent();
+
+ page.add(new WebComponent(MockPageWithLinkAndComponent.COMPONENT_ID)
+ .setOutputMarkupId(true));
+
+
+ page.add(new AjaxLink<Void>(MockPageWithLinkAndComponent.LINK_ID)
+ {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onClick(AjaxRequestTarget target)
+ {
+ WebMarkupContainer wmc = new WebMarkupContainer(
+ MockPageWithLinkAndComponent.COMPONENT_ID);
+ wmc.setOutputMarkupId(true);
+ wmc.add(timer);
+ page.replace(wmc);
+ target.add(wmc);
+ }
+ });
+
+ tester.startPage(page);
+ tester.clickLink(MockPageWithLinkAndComponent.LINK_ID);
+
+ // first render sets timeout in correct Locale
+ assertMatches(", 20000", 1);
+ } finally {
+ Locale.setDefault(def);
+ }
+ }
+
+ /**
* Validates the response, then makes sure the timer injects itself again when called.
*
* @param string