diff --git a/core/src/main/java/org/apache/struts2/views/jsp/iterator/SubsetIteratorTag.java b/core/src/main/java/org/apache/struts2/views/jsp/iterator/SubsetIteratorTag.java index 61f394257..6a6b2ac95 100644 --- a/core/src/main/java/org/apache/struts2/views/jsp/iterator/SubsetIteratorTag.java +++ b/core/src/main/java/org/apache/struts2/views/jsp/iterator/SubsetIteratorTag.java @@ -214,7 +214,7 @@ public class SubsetIteratorTag 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 { @@ -240,7 +240,7 @@ public class SubsetIteratorTag extends StrutsBodyTagSupport { start = ((Long)startObj).intValue(); } else if (startObj instanceof Double) { - start = ((Long)startObj).intValue(); + start = ((Double)startObj).intValue(); } else if (startObj instanceof String) { try { diff --git a/core/src/test/java/org/apache/struts2/views/jsp/SubsetIteratorTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/SubsetIteratorTagTest.java index 4d0b093e0..efc46728e 100644 --- a/core/src/test/java/org/apache/struts2/views/jsp/SubsetIteratorTagTest.java +++ b/core/src/test/java/org/apache/struts2/views/jsp/SubsetIteratorTagTest.java @@ -243,6 +243,21 @@ public class SubsetIteratorTagTest extends AbstractTagTest { } + public void testWithDoubleCount() throws Exception { + SubsetIteratorTag tag = new SubsetIteratorTag(); + tag.setPageContext(pageContext); + tag.setCount("3.0"); + tag.doStartTag(); + tag.doEndTag(); + } + + public void testWithDoubleStart() throws Exception { + SubsetIteratorTag tag = new SubsetIteratorTag(); + tag.setPageContext(pageContext); + tag.setStart("2.0"); + tag.doStartTag(); + tag.doEndTag(); + } public Action getAction() { return new ActionSupport() {