Hi,

Our analytics run is failing with the below error. I've tried deleting all
the data and then started reducing metadata until I had almost none in the
database but the problem did not resolve. I've also run queries to find
duplicates on many tables, especially all the org unit ones and I've found
no duplicates. I've pasted the code causing the error below but I'm not
sure exactly which dimension tables are being validated. Are these only the
tables here:
http://bazaar.launchpad.net/~dhis2-devs-core/dhis2/trunk/view/head:/dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/dimension/DefaultDimensionService.java?
What other tables are used as dimensions? I definitely checked all tables
that have the columns uidlivel[n] and they don't contain duplicates so I'm
thinking it must be a join somewhere.

Thanks

* ERROR 2015-02-23 08:10:23,869 Unexpected error occurred in scheduled
task. (TaskUtils.java [taskScheduler-9])
java.lang.IllegalStateException: Analytics table dimensions contain
duplicates: ["uidlevel3", "uidlevel4"]
at
org.hisp.dhis.analytics.table.AbstractJdbcTableManager.validateDimensionColumns(AbstractJdbcTableManager.java:339)
at
org.hisp.dhis.analytics.table.JdbcAnalyticsTableManager.createTable(JdbcAnalyticsTableManager.java:123)
at sun.reflect.GeneratedMethodAccessor611.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:201)
at com.sun.proxy.$Proxy100.createTable(Unknown Source)
at
org.hisp.dhis.analytics.table.DefaultAnalyticsTableService.createTables(DefaultAnalyticsTableService.java:198)
at
org.hisp.dhis.analytics.table.DefaultAnalyticsTableService.update(DefaultAnalyticsTableService.java:119)
at
org.hisp.dhis.analytics.scheduling.AnalyticsTableTask.run(AnalyticsTableTask.java:136)
at org.hisp.dhis.scheduling.ScheduledTasks.run(ScheduledTasks.java:60)
at
org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)


UI output:
2015-02-23 06:10:23 Process failed: Analytics table dimensions contain
duplicates: ["uidlevel3", "uidlevel4"]
2015-02-23 06:10:23 Creating analytics tables, processes: 1, org unit
levels: 5
2015-02-23 06:10:23 Updating analytics tables
2015-02-23 06:10:14 Updating resource tables
2015-02-23 06:10:14 Analytics table update process started

protected void validateDimensionColumns( List<String[]> dimensions )
+    {
+        if ( dimensions == null || dimensions.isEmpty() )
+        {
+            throw new IllegalStateException( "Analytics table
dimensions are empty" );
+        }
+
+        List<String> columns = new ArrayList<>();
+
+        for ( String[] dimension : dimensions )
+        {
+            columns.add( dimension[0] );
+        }
+
+        Set<String> duplicates = ListUtils.getDuplicates( columns );
+
+        if ( !duplicates.isEmpty() )
+        {
+            throw new IllegalStateException( "Analytics table
dimensions contain duplicates: " + duplicates );
+        }
+    }
_______________________________________________
Mailing list: https://launchpad.net/~dhis2-devs
Post to     : dhis2-devs@lists.launchpad.net
Unsubscribe : https://launchpad.net/~dhis2-devs
More help   : https://help.launchpad.net/ListHelp

Reply via email to