diff --git a/core/src/main/java/org/apache/struts2/views/jsp/iterator/IteratorGeneratorTag.java b/core/src/main/java/org/apache/struts2/views/jsp/iterator/IteratorGeneratorTag.java index a4dafc773..7838625f4 100644 --- a/core/src/main/java/org/apache/struts2/views/jsp/iterator/IteratorGeneratorTag.java +++ b/core/src/main/java/org/apache/struts2/views/jsp/iterator/IteratorGeneratorTag.java @@ -205,7 +205,7 @@ public class IteratorGeneratorTag extends StrutsBodyTagSupport { count = ((Long)countObj).intValue(); } else if (countObj instanceof Double) { - count = ((Long)countObj).intValue(); + count = ((Double)countObj).intValue(); } else if (countObj instanceof String) { try { diff --git a/core/src/test/java/org/apache/struts2/views/jsp/IteratorGeneratorTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/IteratorGeneratorTagTest.java index 1ab1ef6a7..3670c7a1e 100644 --- a/core/src/test/java/org/apache/struts2/views/jsp/IteratorGeneratorTagTest.java +++ b/core/src/test/java/org/apache/struts2/views/jsp/IteratorGeneratorTagTest.java @@ -190,6 +190,14 @@ public class IteratorGeneratorTagTest extends AbstractTagTest { assertNotSame(topOfStack, afterTopOfStack); } + public void testGeneratorWithDoubleCount() throws Exception { + IteratorGeneratorTag tag = new IteratorGeneratorTag(); + tag.setPageContext(pageContext); + tag.setVal("%{'not used'}"); + tag.setCount("3.0"); + tag.doStartTag(); + tag.doEndTag(); + } public Action getAction() { return new ActionSupport() {