=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/JdbcAnalyticsManager.java' --- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/JdbcAnalyticsManager.java 2014-07-15 18:31:16 +0000 +++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/JdbcAnalyticsManager.java 2014-07-17 15:12:35 +0000 @@ -70,6 +70,7 @@ import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.period.Period; import org.hisp.dhis.period.PeriodType; +import org.hisp.dhis.system.util.DebugUtils; import org.hisp.dhis.system.util.MathUtils; import org.hisp.dhis.system.util.SqlHelper; import org.hisp.dhis.system.util.TextUtils; @@ -111,41 +112,50 @@ @Async public Future> getAggregatedDataValues( DataQueryParams params ) { - ListMap dataPeriodAggregationPeriodMap = params.getDataPeriodAggregationPeriodMap(); - - params.replaceAggregationPeriodsWithDataPeriods( dataPeriodAggregationPeriodMap ); - - String sql = getSelectClause( params ); - - if ( params.spansMultiplePartitions() ) - { - sql += getFromWhereClauseMultiplePartitionFilters( params ); - } - else - { - sql += getFromWhereClause( params, params.getPartitions().getSinglePartition() ); - } - - sql += getGroupByClause( params ); - - log.debug( sql ); - - Map map = null; - try { - map = getKeyValueMap( params, sql ); + ListMap dataPeriodAggregationPeriodMap = params.getDataPeriodAggregationPeriodMap(); + + params.replaceAggregationPeriodsWithDataPeriods( dataPeriodAggregationPeriodMap ); + + String sql = getSelectClause( params ); + + if ( params.spansMultiplePartitions() ) + { + sql += getFromWhereClauseMultiplePartitionFilters( params ); + } + else + { + sql += getFromWhereClause( params, params.getPartitions().getSinglePartition() ); + } + + sql += getGroupByClause( params ); + + log.debug( sql ); + + Map map = null; + + try + { + map = getKeyValueMap( params, sql ); + } + catch ( BadSqlGrammarException ex ) + { + log.info( "Query failed, likely because the requested analytics table does not exist", ex ); + + return new AsyncResult>( new HashMap() ); + } + + replaceDataPeriodsWithAggregationPeriods( map, params, dataPeriodAggregationPeriodMap ); + + return new AsyncResult>( map ); } - catch ( BadSqlGrammarException ex ) + catch ( Exception ex ) { - log.info( "Query failed, likely because the requested analytics table does not exist", ex ); + log.error( DebugUtils.getStackTrace( ex ) ); - return new AsyncResult>( new HashMap() ); + throw ex; } - - replaceDataPeriodsWithAggregationPeriods( map, params, dataPeriodAggregationPeriodMap ); - - return new AsyncResult>( map ); } public void replaceDataPeriodsWithAggregationPeriods( Map dataValueMap, DataQueryParams params, ListMap dataPeriodAggregationPeriodMap )