You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Adrian Crum <ad...@sandglass-software.com> on 2011/11/24 10:45:47 UTC

Re: svn commit: r1205710 - /ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilDateTime.java

Hans,

The NPE is by design. Calling code should validate parameters before 
calling the utility method.

Providing undocumented default values will also cause strange behavior.

-Adrian

On 11/24/2011 2:54 AM, hansbak@apache.org wrote:
> Author: hansbak
> Date: Thu Nov 24 02:54:14 2011
> New Revision: 1205710
>
> URL: http://svn.apache.org/viewvc?rev=1205710&view=rev
> Log:
> getDayEnd will have a null pointer exception when the offset is not provided. This can cause very strange behaviour in the system when people forget to enter a value in terms. When not provided zero is assumed now
>
> Modified:
>      ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilDateTime.java
>
> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilDateTime.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilDateTime.java?rev=1205710&r1=1205709&r2=1205710&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilDateTime.java (original)
> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilDateTime.java Thu Nov 24 02:54:14 2011
> @@ -823,6 +823,9 @@ public class UtilDateTime {
>       }
>
>       public static Timestamp getDayEnd(Timestamp stamp, Long daysLater, TimeZone timeZone, Locale locale) {
> +    	if (daysLater == null) {
> +    		daysLater = Long.valueOf(0);
> +    	}
>           Calendar tempCal = toCalendar(stamp, timeZone, locale);
>           tempCal.set(tempCal.get(Calendar.YEAR), tempCal.get(Calendar.MONTH), tempCal.get(Calendar.DAY_OF_MONTH), 23, 59, 59);
>           tempCal.add(Calendar.DAY_OF_MONTH, daysLater.intValue());
>
>