Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.3.20
-
None
Description
If you pass a value which isn't Date or Calendar, the <s:date/> ignores it and doesn't report any problems. The problem is here
public boolean end(Writer writer, String body) { String msg; java.util.Date date = null; // find the name on the valueStack try { //suport Calendar also Object dateObject = findValue(name); if (dateObject instanceof java.util.Date) { date = (java.util.Date) dateObject; } else if(dateObject instanceof Calendar){ date = ((Calendar) dateObject).getTime(); } } catch (Exception e) { LOG.error("Could not convert object with key '#0' to a java.util.Date instance", name); }
there must additional else clause to report missing value, ie:
if (dateObject instanceof java.util.Date) { date = (java.util.Date) dateObject; } else if(dateObject instanceof Calendar){ date = ((Calendar) dateObject).getTime(); } else { LOG.error(...); }