Index: trunk/grails-app/controllers/ReportController.groovy
===================================================================
--- trunk/grails-app/controllers/ReportController.groovy	(revision 708)
+++ trunk/grails-app/controllers/ReportController.groovy	(revision 709)
@@ -112,8 +112,14 @@
         params.endDateString = g.formatDate(format: "EEE, dd-MMM-yyyy", date: params.endDate)
 
-        def dataModel = taskReportService.getImmediateCallouts(params, RCU.getLocale(request))
-
-        // Jasper plugin controller expects data to be a Collection.
-        chain(controller:'jasper', action:'index', model:[data: [dataModel]], params:params)
+        def result = taskReportService.getImmediateCallouts(params, RCU.getLocale(request))
+
+        if(!result.error) {
+            // Jasper plugin controller expects data to be a Collection.
+            chain(controller:'jasper', action:'index', model:[data: [result]], params:params)
+            return
+        }
+
+        flash.errorMessage = g.message(code: result.error.code, args: result.error.args)
+        redirect(controller: 'appCore', action: 'start', params: [showTab:'showReportsTab'])
 
     } // immediateCallouts
Index: trunk/grails-app/services/TaskReportService.groovy
===================================================================
--- trunk/grails-app/services/TaskReportService.groovy	(revision 708)
+++ trunk/grails-app/services/TaskReportService.groovy	(revision 709)
@@ -169,12 +169,23 @@
         def result = [:]
 
+        def fail = { Map m ->
+            result.error = [ code: m.code, args: [] ]
+            return result
+        }
+
         def namedParams = [:]
         namedParams.startDate = params.startDate ?: dateUtilService.today
-        namedParams.endDatePlusOne = (params.endDate ?: dateUtilService.today)+1
+        namedParams.endDate = params.endDate ?: dateUtilService.today
+
+        if(namedParams.endDate < namedParams.startDate)
+            return fail(code: "default.end.date.before.start.date")
+
+        namedParams.endDate++ // Start of next day required.
+
         namedParams.immediateCallout = TaskType.read(1)
 
         result.taskQuery = "from Task as task \
                                             where (task.trash = false \
-                                                        and task.targetStartDate < :endDatePlusOne \
+                                                        and task.targetStartDate < :endDate \
                                                         and task.targetStartDate >= :startDate \
                                                         and task.taskType = :immediateCallout \
