=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/EventAnalyticsService.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/EventAnalyticsService.java 2014-03-18 08:10:10 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/EventAnalyticsService.java 2014-03-27 11:13:02 +0000 @@ -39,6 +39,8 @@ */ public interface EventAnalyticsService { + final int MAX_ROWS_LIMIT = 10000; + Grid getAggregatedEventData( EventQueryParams params ); Grid getEvents( EventQueryParams params ); === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java 2014-03-26 19:33:00 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventAnalyticsService.java 2014-03-27 11:13:02 +0000 @@ -82,7 +82,7 @@ */ public class DefaultEventAnalyticsService implements EventAnalyticsService -{ +{ private static final String ITEM_EVENT = "psi"; private static final String ITEM_PROGRAM_STAGE = "ps"; private static final String ITEM_EXECUTION_DATE = "eventdate"; === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventQueryPlanner.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventQueryPlanner.java 2014-03-24 22:19:59 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/DefaultEventQueryPlanner.java 2014-03-27 11:13:02 +0000 @@ -39,6 +39,7 @@ import org.hisp.dhis.analytics.Partitions; import org.hisp.dhis.analytics.QueryPlanner; import org.hisp.dhis.analytics.event.EventAnalyticsManager; +import org.hisp.dhis.analytics.event.EventAnalyticsService; import org.hisp.dhis.analytics.event.EventQueryParams; import org.hisp.dhis.analytics.event.EventQueryPlanner; import org.hisp.dhis.analytics.table.PartitionUtils; @@ -110,6 +111,11 @@ violation = "Page size must be zero or positive: " + params.getPageSize(); } + if ( params.hasLimit() && params.getLimit() > EventAnalyticsService.MAX_ROWS_LIMIT ) + { + violation = "Limit of: " + params.getLimit() + " is larger than max limit: " + EventAnalyticsService.MAX_ROWS_LIMIT; + } + if ( violation != null ) { log.warn( "Validation failed: " + violation ); === modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/JdbcEventAnalyticsManager.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/JdbcEventAnalyticsManager.java 2014-03-18 08:10:10 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/event/data/JdbcEventAnalyticsManager.java 2014-03-27 11:13:02 +0000 @@ -41,6 +41,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hisp.dhis.analytics.event.EventAnalyticsManager; +import org.hisp.dhis.analytics.event.EventAnalyticsService; import org.hisp.dhis.analytics.event.EventQueryParams; import org.hisp.dhis.analytics.event.EventQueryPlanner; import org.hisp.dhis.common.DimensionalObject; @@ -69,8 +70,6 @@ { private static final Log log = LogFactory.getLog( JdbcEventAnalyticsManager.class ); - private static final int MAX_LIMIT = 10000; - private static final String QUERY_ERR_MSG = "Query failed, likely because the requested analytics table does not exist"; @Autowired @@ -125,7 +124,7 @@ } else { - sql += "limit " + MAX_LIMIT; + sql += "limit " + EventAnalyticsService.MAX_ROWS_LIMIT; } // ---------------------------------------------------------------------