Upgrading from 2.6

Hi there. Attempting to upgrade a rather old version of DHIS2 (versoin 2.6) and running into some issues, not surprisingly. I guess maybe upgrading to 2.14 might be too much to ask in one go, so maybe some advice there would be useful.

Anyway, here is what I am getting from the latest 2.14.

Any help appreciated.

Regards,

Jason

Jan 20, 2014 2:32:06 PM org.apache.catalina.startup.HostConfig deployWAR

INFO: Deploying web application archive /home/dhis/tomcat/webapps/dhis.war

  • INFO 2014-01-20 14:32:16,689 System property dhis2.home not set (DefaultLocationManager.java [pool-2-thread-1])

  • INFO 2014-01-20 14:32:16,694 Environment variable DHIS2_HOME points to /home/dhis/dhis_home (DefaultLocationManager.java [pool-2-thread-1])

  • INFO 2014-01-20 14:32:19,018 Hibernate configuration loaded, using dialect: org.hibernate.dialect.PostgreSQLDialect (DefaultHibernateConfigurationProvider.java [pool-2-thread-1])

  • ERROR 2014-01-20 14:32:39,492 HHH000388: Unsuccessful: alter table datavalue_audit add constraint fk_datavalueaudit_datavalue foreign key (dataelementid, periodid, sourceid, categoryoptioncomboid, attributeoptioncomboid) references datavalue (SchemaUpdate.java [pool-2-thread-1])

  • ERROR 2014-01-20 14:32:39,494 ERROR: constraint “fk_datavalueaudit_datavalue” for relation “datavalue_audit” already exists (SchemaUpdate.java [pool-2-thread-1])

  • ERROR 2014-01-20 14:32:39,499 HHH000388: Unsuccessful: alter table mapview add constraint fk_mapview_maplegendsetid foreign key (legendsetid) references maplegendset (SchemaUpdate.java [pool-2-thread-1])

  • ERROR 2014-01-20 14:32:39,500 ERROR: constraint “fk_mapview_maplegendsetid” for relation “mapview” already exists (SchemaUpdate.java [pool-2-thread-1])

  • ERROR 2014-01-20 14:32:39,504 HHH000388: Unsuccessful: alter table validationrulegroupmembers add constraint fk_validationrulegroupmembers_validationrulegroupid foreign key (validationgroupid) references validationrulegroup (SchemaUpdate.java [pool-2-thread-1])

  • ERROR 2014-01-20 14:32:39,505 ERROR: constraint “fk_validationrulegroupmembers_validationrulegroupid” for relation “validationrulegroupmembers” already exists (SchemaUpdate.java [pool-2-thread-1])

  • ERROR 2014-01-20 14:32:39,510 HHH000388: Unsuccessful: alter table validationrulegroupuserrolestoalert add constraint fk_validationrulegroupuserrolestoalert_validationgroupid foreign key (validationgroupid) references validationrulegroup (SchemaUpdate.java [pool-2-thread-1])

  • ERROR 2014-01-20 14:32:39,511 ERROR: constraint “fk_validationrulegroupuserrolestoalert_validationgroupid” for relation “validationrulegroupuserrolestoalert” already exists (SchemaUpdate.java [pool-2-thread-1])

  • INFO 2014-01-20 14:32:47,778 Found the following message senders: [org.hisp.dhis.message.EmailMessageSender@1d1f5801, org.hisp.dhis.sms.SmsMessageSender@74cab896] (DefaultMessageService.java [pool-2-thread-1])

  • INFO 2014-01-20 14:32:55,672 Detected apps: [] (DefaultAppManager.java [pool-2-thread-1])

  • INFO 2014-01-20 14:33:00,922 Executing startup routine [1 of 11, runlevel 1]: PeriodTypePopulator (DefaultStartupRoutineExecutor.java [pool-2-thread-1])

  • INFO 2014-01-20 14:33:00,963 Executing startup routine [2 of 11, runlevel 1]: DataElementDefaultDimensionPopulator (DefaultStartupRoutineExecutor.java [pool-2-thread-1])

  • ERROR 2014-01-20 14:33:01,156 org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of org.hisp.dhis.dataelement.DataElementCategory.dataDimension

at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:108)

at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:710)

at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:371)

at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:4499)

at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:185)

at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:137)

at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1103)

at org.hibernate.loader.Loader.processResultSet(Loader.java:960)

at org.hibernate.loader.Loader.doQuery(Loader.java:910)

at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341)

at org.hibernate.loader.Loader.doList(Loader.java:2516)

at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2361)

at org.hibernate.loader.Loader.list(Loader.java:2324)

at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:490)

at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355)

at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195)

at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1268)

at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)

at org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore.getAllEqName(HibernateIdentifiableObjectStore.java:146)

at org.hisp.dhis.dataelement.DefaultDataElementCategoryService.getDataElementCategoryByName(DefaultDataElementCategoryService.java:175)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

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.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

at com.sun.proxy.$Proxy35.getDataElementCategoryByName(Unknown Source)

at org.hisp.dhis.dataelement.DataElementDefaultDimensionPopulator.execute(DataElementDefaultDimensionPopulator.java:101)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

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.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

at com.sun.proxy.$Proxy78.execute(Unknown Source)

at org.hisp.dhis.system.startup.DefaultStartupRoutineExecutor.execute(DefaultStartupRoutineExecutor.java:115)

at org.hisp.dhis.system.startup.DefaultStartupRoutineExecutor.execute(DefaultStartupRoutineExecutor.java:85)

at org.hisp.dhis.system.startup.StartupListener.contextInitialized(StartupListener.java:68)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)

at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)

at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1599)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

at java.util.concurrent.FutureTask.run(FutureTask.java:166)

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:724)

Caused by: java.lang.IllegalArgumentException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:65)

… 65 more

Looks like there maybe something missing in the startup scripts. After this…

UPDATE dataelementcategory set datadimension=FALSE;
UPDATE dataelementcategory set dimensiontype=‘disaggregation’;

UPDATE categorycombo set skiptotal = FALSE;

Things seemed to work.

Regards,

Jason

···

On Mon, Jan 20, 2014 at 4:36 PM, Jason Pickering jason.p.pickering@gmail.com wrote:

Hi there. Attempting to upgrade a rather old version of DHIS2 (versoin 2.6) and running into some issues, not surprisingly. I guess maybe upgrading to 2.14 might be too much to ask in one go, so maybe some advice there would be useful.

Anyway, here is what I am getting from the latest 2.14.

Any help appreciated.

Regards,

Jason

Jan 20, 2014 2:32:06 PM org.apache.catalina.startup.HostConfig deployWAR

INFO: Deploying web application archive /home/dhis/tomcat/webapps/dhis.war

  • INFO 2014-01-20 14:32:16,689 System property dhis2.home not set (DefaultLocationManager.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:16,694 Environment variable DHIS2_HOME points to /home/dhis/dhis_home (DefaultLocationManager.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:19,018 Hibernate configuration loaded, using dialect: org.hibernate.dialect.PostgreSQLDialect (DefaultHibernateConfigurationProvider.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,492 HHH000388: Unsuccessful: alter table datavalue_audit add constraint fk_datavalueaudit_datavalue foreign key (dataelementid, periodid, sourceid, categoryoptioncomboid, attributeoptioncomboid) references datavalue (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,494 ERROR: constraint “fk_datavalueaudit_datavalue” for relation “datavalue_audit” already exists (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,499 HHH000388: Unsuccessful: alter table mapview add constraint fk_mapview_maplegendsetid foreign key (legendsetid) references maplegendset (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,500 ERROR: constraint “fk_mapview_maplegendsetid” for relation “mapview” already exists (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,504 HHH000388: Unsuccessful: alter table validationrulegroupmembers add constraint fk_validationrulegroupmembers_validationrulegroupid foreign key (validationgroupid) references validationrulegroup (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,505 ERROR: constraint “fk_validationrulegroupmembers_validationrulegroupid” for relation “validationrulegroupmembers” already exists (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,510 HHH000388: Unsuccessful: alter table validationrulegroupuserrolestoalert add constraint fk_validationrulegroupuserrolestoalert_validationgroupid foreign key (validationgroupid) references validationrulegroup (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,511 ERROR: constraint “fk_validationrulegroupuserrolestoalert_validationgroupid” for relation “validationrulegroupuserrolestoalert” already exists (SchemaUpdate.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:47,778 Found the following message senders: [org.hisp.dhis.message.EmailMessageSender@1d1f5801, org.hisp.dhis.sms.SmsMessageSender@74cab896] (DefaultMessageService.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:55,672 Detected apps: [] (DefaultAppManager.java [pool-2-thread-1])
  • INFO 2014-01-20 14:33:00,922 Executing startup routine [1 of 11, runlevel 1]: PeriodTypePopulator (DefaultStartupRoutineExecutor.java [pool-2-thread-1])
  • INFO 2014-01-20 14:33:00,963 Executing startup routine [2 of 11, runlevel 1]: DataElementDefaultDimensionPopulator (DefaultStartupRoutineExecutor.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:33:01,156 org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of org.hisp.dhis.dataelement.DataElementCategory.dataDimension

at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:108)

at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:710)

at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:371)

at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:4499)

at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:185)

at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:137)

at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1103)

at org.hibernate.loader.Loader.processResultSet(Loader.java:960)

at org.hibernate.loader.Loader.doQuery(Loader.java:910)

at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341)

at org.hibernate.loader.Loader.doList(Loader.java:2516)

at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2361)

at org.hibernate.loader.Loader.list(Loader.java:2324)

at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:490)

at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355)

at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195)

at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1268)

at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)

at org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore.getAllEqName(HibernateIdentifiableObjectStore.java:146)

at org.hisp.dhis.dataelement.DefaultDataElementCategoryService.getDataElementCategoryByName(DefaultDataElementCategoryService.java:175)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

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.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

at com.sun.proxy.$Proxy35.getDataElementCategoryByName(Unknown Source)

at org.hisp.dhis.dataelement.DataElementDefaultDimensionPopulator.execute(DataElementDefaultDimensionPopulator.java:101)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

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.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

at com.sun.proxy.$Proxy78.execute(Unknown Source)

at org.hisp.dhis.system.startup.DefaultStartupRoutineExecutor.execute(DefaultStartupRoutineExecutor.java:115)

at org.hisp.dhis.system.startup.DefaultStartupRoutineExecutor.execute(DefaultStartupRoutineExecutor.java:85)

at org.hisp.dhis.system.startup.StartupListener.contextInitialized(StartupListener.java:68)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)

at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)

at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1599)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

at java.util.concurrent.FutureTask.run(FutureTask.java:166)

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:724)

Caused by: java.lang.IllegalArgumentException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:65)

… 65 more

Hi Jason,

had a quick look. It seems the issue is that we have multiple startup routines, in this case first one DataElementDefaultDimensionPopulator that populates the default dimensional categories, then the TableAlteror which adds the new columns for dataelementcategory called “datadimensions”. Now the problem is that the TableAlteror depends on the DataElementDefaultDimensionPopulator to have run earlier, and in this case, the DataElementDefaultDimensionPopulator depends on the TableAlteror to have run earlier.

So fixing it would require us to start splitting up the TableAlteror. This problem will not surfeace unless upgrading from very old versions, or from deleting the default categories. We could look into it later. Your queries will fix the problem. I would have thrown in a check to avoid overwriting existing rows to be on the safe side:

UPDATE dataelementcategory set datadimension=FALSE where datadimension IS NULL;

cheers

Lars

···

On Mon, Jan 20, 2014 at 3:57 PM, Jason Pickering jason.p.pickering@gmail.com wrote:

Looks like there maybe something missing in the startup scripts. After this…

UPDATE dataelementcategory set datadimension=FALSE;
UPDATE dataelementcategory set dimensiontype=‘disaggregation’;

UPDATE categorycombo set skiptotal = FALSE;

Things seemed to work.

Regards,

Jason


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

On Mon, Jan 20, 2014 at 4:36 PM, Jason Pickering jason.p.pickering@gmail.com wrote:

Hi there. Attempting to upgrade a rather old version of DHIS2 (versoin 2.6) and running into some issues, not surprisingly. I guess maybe upgrading to 2.14 might be too much to ask in one go, so maybe some advice there would be useful.

Anyway, here is what I am getting from the latest 2.14.

Any help appreciated.

Regards,

Jason

Jan 20, 2014 2:32:06 PM org.apache.catalina.startup.HostConfig deployWAR

INFO: Deploying web application archive /home/dhis/tomcat/webapps/dhis.war

  • INFO 2014-01-20 14:32:16,689 System property dhis2.home not set (DefaultLocationManager.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:16,694 Environment variable DHIS2_HOME points to /home/dhis/dhis_home (DefaultLocationManager.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:19,018 Hibernate configuration loaded, using dialect: org.hibernate.dialect.PostgreSQLDialect (DefaultHibernateConfigurationProvider.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,492 HHH000388: Unsuccessful: alter table datavalue_audit add constraint fk_datavalueaudit_datavalue foreign key (dataelementid, periodid, sourceid, categoryoptioncomboid, attributeoptioncomboid) references datavalue (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,494 ERROR: constraint “fk_datavalueaudit_datavalue” for relation “datavalue_audit” already exists (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,499 HHH000388: Unsuccessful: alter table mapview add constraint fk_mapview_maplegendsetid foreign key (legendsetid) references maplegendset (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,500 ERROR: constraint “fk_mapview_maplegendsetid” for relation “mapview” already exists (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,504 HHH000388: Unsuccessful: alter table validationrulegroupmembers add constraint fk_validationrulegroupmembers_validationrulegroupid foreign key (validationgroupid) references validationrulegroup (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,505 ERROR: constraint “fk_validationrulegroupmembers_validationrulegroupid” for relation “validationrulegroupmembers” already exists (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,510 HHH000388: Unsuccessful: alter table validationrulegroupuserrolestoalert add constraint fk_validationrulegroupuserrolestoalert_validationgroupid foreign key (validationgroupid) references validationrulegroup (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,511 ERROR: constraint “fk_validationrulegroupuserrolestoalert_validationgroupid” for relation “validationrulegroupuserrolestoalert” already exists (SchemaUpdate.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:47,778 Found the following message senders: [org.hisp.dhis.message.EmailMessageSender@1d1f5801, org.hisp.dhis.sms.SmsMessageSender@74cab896] (DefaultMessageService.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:55,672 Detected apps: [] (DefaultAppManager.java [pool-2-thread-1])
  • INFO 2014-01-20 14:33:00,922 Executing startup routine [1 of 11, runlevel 1]: PeriodTypePopulator (DefaultStartupRoutineExecutor.java [pool-2-thread-1])
  • INFO 2014-01-20 14:33:00,963 Executing startup routine [2 of 11, runlevel 1]: DataElementDefaultDimensionPopulator (DefaultStartupRoutineExecutor.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:33:01,156 org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of org.hisp.dhis.dataelement.DataElementCategory.dataDimension

at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:108)

at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:710)

at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:371)

at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:4499)

at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:185)

at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:137)

at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1103)

at org.hibernate.loader.Loader.processResultSet(Loader.java:960)

at org.hibernate.loader.Loader.doQuery(Loader.java:910)

at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341)

at org.hibernate.loader.Loader.doList(Loader.java:2516)

at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2361)

at org.hibernate.loader.Loader.list(Loader.java:2324)

at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:490)

at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355)

at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195)

at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1268)

at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)

at org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore.getAllEqName(HibernateIdentifiableObjectStore.java:146)

at org.hisp.dhis.dataelement.DefaultDataElementCategoryService.getDataElementCategoryByName(DefaultDataElementCategoryService.java:175)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

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.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

at com.sun.proxy.$Proxy35.getDataElementCategoryByName(Unknown Source)

at org.hisp.dhis.dataelement.DataElementDefaultDimensionPopulator.execute(DataElementDefaultDimensionPopulator.java:101)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

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.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

at com.sun.proxy.$Proxy78.execute(Unknown Source)

at org.hisp.dhis.system.startup.DefaultStartupRoutineExecutor.execute(DefaultStartupRoutineExecutor.java:115)

at org.hisp.dhis.system.startup.DefaultStartupRoutineExecutor.execute(DefaultStartupRoutineExecutor.java:85)

at org.hisp.dhis.system.startup.StartupListener.contextInitialized(StartupListener.java:68)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)

at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)

at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1599)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

at java.util.concurrent.FutureTask.run(FutureTask.java:166)

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:724)

Caused by: java.lang.IllegalArgumentException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:65)

… 65 more

I just upgraded from 2.13 to 2.14 and got this. Anything to be worried about?

Regards,
jason

  • INFO 2014-01-27 19:41:42,637 Hibernate configuration loaded, using dialect: org.hibernate.dialect.PostgreSQLDialect (DefaultHibernateConfigurationProvider.java [pool-2-thread-1])

  • ERROR 2014-01-27 19:42:01,475 HHH000388: Unsuccessful: alter table datavalue add column attributeoptioncomboid int4 not null (SchemaUpdate.java [pool-2-thread-1])

  • ERROR 2014-01-27 19:42:01,476 ERROR: column “attributeoptioncomboid” contains null values (SchemaUpdate.java [pool-2-thread-1])

  • ERROR 2014-01-27 19:42:01,676 HHH000388: Unsuccessful: alter table datavalue add constraint fk_datavalue_attributeoptioncomboid foreign key (attributeoptioncomboid) references categoryoptioncombo (SchemaUpdate.java [pool-2-thread-1])

  • ERROR 2014-01-27 19:42:01,677 ERROR: column “attributeoptioncomboid” referenced in foreign key constraint does not exist (SchemaUpdate.java [pool-2-thread-1])

  • ERROR 2014-01-27 19:42:01,681 HHH000388: Unsuccessful: alter table datavalue_audit add constraint fk_datavalueaudit_datavalue foreign key (dataelementid, periodid, sourceid, categoryoptioncomboid, attributeoptioncomboid) references datavalue (SchemaUpdate.java [pool-2-thread-1])

  • ERROR 2014-01-27 19:42:01,688 ERROR: constraint “fk_datavalueaudit_datavalue” for relation “datavalue_audit” already exists (SchemaUpdate.java [pool-2-thread-1])

  • INFO 2014-01-27 19:42:19,583 Found the following message senders: [org.hisp.dhis.message.EmailMessageSender@142499c, org.hisp.dhis.sms.SmsMessageSender@eed8ce] (DefaultMessageService.java [pool-2-thread-1])

···

On Mon, Jan 20, 2014 at 10:23 PM, Lars Helge Øverland larshelge@gmail.com wrote:

Hi Jason,

had a quick look. It seems the issue is that we have multiple startup routines, in this case first one DataElementDefaultDimensionPopulator that populates the default dimensional categories, then the TableAlteror which adds the new columns for dataelementcategory called “datadimensions”. Now the problem is that the TableAlteror depends on the DataElementDefaultDimensionPopulator to have run earlier, and in this case, the DataElementDefaultDimensionPopulator depends on the TableAlteror to have run earlier.

So fixing it would require us to start splitting up the TableAlteror. This problem will not surfeace unless upgrading from very old versions, or from deleting the default categories. We could look into it later. Your queries will fix the problem. I would have thrown in a check to avoid overwriting existing rows to be on the safe side:

UPDATE dataelementcategory set datadimension=FALSE where datadimension IS NULL;

cheers

Lars

On Mon, Jan 20, 2014 at 3:57 PM, Jason Pickering jason.p.pickering@gmail.com wrote:

Looks like there maybe something missing in the startup scripts. After this…

UPDATE dataelementcategory set datadimension=FALSE;
UPDATE dataelementcategory set dimensiontype=‘disaggregation’;

UPDATE categorycombo set skiptotal = FALSE;

Things seemed to work.

Regards,

Jason


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

On Mon, Jan 20, 2014 at 4:36 PM, Jason Pickering jason.p.pickering@gmail.com wrote:

Hi there. Attempting to upgrade a rather old version of DHIS2 (versoin 2.6) and running into some issues, not surprisingly. I guess maybe upgrading to 2.14 might be too much to ask in one go, so maybe some advice there would be useful.

Anyway, here is what I am getting from the latest 2.14.

Any help appreciated.

Regards,

Jason

Jan 20, 2014 2:32:06 PM org.apache.catalina.startup.HostConfig deployWAR

INFO: Deploying web application archive /home/dhis/tomcat/webapps/dhis.war

  • INFO 2014-01-20 14:32:16,689 System property dhis2.home not set (DefaultLocationManager.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:16,694 Environment variable DHIS2_HOME points to /home/dhis/dhis_home (DefaultLocationManager.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:19,018 Hibernate configuration loaded, using dialect: org.hibernate.dialect.PostgreSQLDialect (DefaultHibernateConfigurationProvider.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,492 HHH000388: Unsuccessful: alter table datavalue_audit add constraint fk_datavalueaudit_datavalue foreign key (dataelementid, periodid, sourceid, categoryoptioncomboid, attributeoptioncomboid) references datavalue (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,494 ERROR: constraint “fk_datavalueaudit_datavalue” for relation “datavalue_audit” already exists (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,499 HHH000388: Unsuccessful: alter table mapview add constraint fk_mapview_maplegendsetid foreign key (legendsetid) references maplegendset (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,500 ERROR: constraint “fk_mapview_maplegendsetid” for relation “mapview” already exists (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,504 HHH000388: Unsuccessful: alter table validationrulegroupmembers add constraint fk_validationrulegroupmembers_validationrulegroupid foreign key (validationgroupid) references validationrulegroup (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,505 ERROR: constraint “fk_validationrulegroupmembers_validationrulegroupid” for relation “validationrulegroupmembers” already exists (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,510 HHH000388: Unsuccessful: alter table validationrulegroupuserrolestoalert add constraint fk_validationrulegroupuserrolestoalert_validationgroupid foreign key (validationgroupid) references validationrulegroup (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,511 ERROR: constraint “fk_validationrulegroupuserrolestoalert_validationgroupid” for relation “validationrulegroupuserrolestoalert” already exists (SchemaUpdate.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:47,778 Found the following message senders: [org.hisp.dhis.message.EmailMessageSender@1d1f5801, org.hisp.dhis.sms.SmsMessageSender@74cab896] (DefaultMessageService.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:55,672 Detected apps: [] (DefaultAppManager.java [pool-2-thread-1])
  • INFO 2014-01-20 14:33:00,922 Executing startup routine [1 of 11, runlevel 1]: PeriodTypePopulator (DefaultStartupRoutineExecutor.java [pool-2-thread-1])
  • INFO 2014-01-20 14:33:00,963 Executing startup routine [2 of 11, runlevel 1]: DataElementDefaultDimensionPopulator (DefaultStartupRoutineExecutor.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:33:01,156 org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of org.hisp.dhis.dataelement.DataElementCategory.dataDimension

at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:108)

at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:710)

at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:371)

at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:4499)

at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:185)

at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:137)

at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1103)

at org.hibernate.loader.Loader.processResultSet(Loader.java:960)

at org.hibernate.loader.Loader.doQuery(Loader.java:910)

at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341)

at org.hibernate.loader.Loader.doList(Loader.java:2516)

at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2361)

at org.hibernate.loader.Loader.list(Loader.java:2324)

at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:490)

at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355)

at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195)

at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1268)

at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)

at org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore.getAllEqName(HibernateIdentifiableObjectStore.java:146)

at org.hisp.dhis.dataelement.DefaultDataElementCategoryService.getDataElementCategoryByName(DefaultDataElementCategoryService.java:175)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

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.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

at com.sun.proxy.$Proxy35.getDataElementCategoryByName(Unknown Source)

at org.hisp.dhis.dataelement.DataElementDefaultDimensionPopulator.execute(DataElementDefaultDimensionPopulator.java:101)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

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.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

at com.sun.proxy.$Proxy78.execute(Unknown Source)

at org.hisp.dhis.system.startup.DefaultStartupRoutineExecutor.execute(DefaultStartupRoutineExecutor.java:115)

at org.hisp.dhis.system.startup.DefaultStartupRoutineExecutor.execute(DefaultStartupRoutineExecutor.java:85)

at org.hisp.dhis.system.startup.StartupListener.contextInitialized(StartupListener.java:68)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)

at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)

at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1599)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

at java.util.concurrent.FutureTask.run(FutureTask.java:166)

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:724)

Caused by: java.lang.IllegalArgumentException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:65)

… 65 more

Can you try to stop and restart again and see if it goes away?

Lars

···

On Mon, Jan 27, 2014 at 7:44 PM, Jason Pickering jason.p.pickering@gmail.com wrote:

I just upgraded from 2.13 to 2.14 and got this. Anything to be worried about?

Regards,
jason

  • INFO 2014-01-27 19:41:42,637 Hibernate configuration loaded, using dialect: org.hibernate.dialect.PostgreSQLDialect (DefaultHibernateConfigurationProvider.java [pool-2-thread-1])
  • ERROR 2014-01-27 19:42:01,475 HHH000388: Unsuccessful: alter table datavalue add column attributeoptioncomboid int4 not null (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-27 19:42:01,476 ERROR: column “attributeoptioncomboid” contains null values (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-27 19:42:01,676 HHH000388: Unsuccessful: alter table datavalue add constraint fk_datavalue_attributeoptioncomboid foreign key (attributeoptioncomboid) references categoryoptioncombo (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-27 19:42:01,677 ERROR: column “attributeoptioncomboid” referenced in foreign key constraint does not exist (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-27 19:42:01,681 HHH000388: Unsuccessful: alter table datavalue_audit add constraint fk_datavalueaudit_datavalue foreign key (dataelementid, periodid, sourceid, categoryoptioncomboid, attributeoptioncomboid) references datavalue (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-27 19:42:01,688 ERROR: constraint “fk_datavalueaudit_datavalue” for relation “datavalue_audit” already exists (SchemaUpdate.java [pool-2-thread-1])
  • INFO 2014-01-27 19:42:19,583 Found the following message senders: [org.hisp.dhis.message.EmailMessageSender@142499c, org.hisp.dhis.sms.SmsMessageSender@eed8ce] (DefaultMessageService.java [pool-2-thread-1])

On Mon, Jan 20, 2014 at 10:23 PM, Lars Helge Øverland larshelge@gmail.com wrote:

Hi Jason,

had a quick look. It seems the issue is that we have multiple startup routines, in this case first one DataElementDefaultDimensionPopulator that populates the default dimensional categories, then the TableAlteror which adds the new columns for dataelementcategory called “datadimensions”. Now the problem is that the TableAlteror depends on the DataElementDefaultDimensionPopulator to have run earlier, and in this case, the DataElementDefaultDimensionPopulator depends on the TableAlteror to have run earlier.

So fixing it would require us to start splitting up the TableAlteror. This problem will not surfeace unless upgrading from very old versions, or from deleting the default categories. We could look into it later. Your queries will fix the problem. I would have thrown in a check to avoid overwriting existing rows to be on the safe side:

UPDATE dataelementcategory set datadimension=FALSE where datadimension IS NULL;

cheers

Lars

On Mon, Jan 20, 2014 at 3:57 PM, Jason Pickering jason.p.pickering@gmail.com wrote:

Looks like there maybe something missing in the startup scripts. After this…

UPDATE dataelementcategory set datadimension=FALSE;
UPDATE dataelementcategory set dimensiontype=‘disaggregation’;

UPDATE categorycombo set skiptotal = FALSE;

Things seemed to work.

Regards,

Jason


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

On Mon, Jan 20, 2014 at 4:36 PM, Jason Pickering jason.p.pickering@gmail.com wrote:

Hi there. Attempting to upgrade a rather old version of DHIS2 (versoin 2.6) and running into some issues, not surprisingly. I guess maybe upgrading to 2.14 might be too much to ask in one go, so maybe some advice there would be useful.

Anyway, here is what I am getting from the latest 2.14.

Any help appreciated.

Regards,

Jason

Jan 20, 2014 2:32:06 PM org.apache.catalina.startup.HostConfig deployWAR

INFO: Deploying web application archive /home/dhis/tomcat/webapps/dhis.war

  • INFO 2014-01-20 14:32:16,689 System property dhis2.home not set (DefaultLocationManager.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:16,694 Environment variable DHIS2_HOME points to /home/dhis/dhis_home (DefaultLocationManager.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:19,018 Hibernate configuration loaded, using dialect: org.hibernate.dialect.PostgreSQLDialect (DefaultHibernateConfigurationProvider.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,492 HHH000388: Unsuccessful: alter table datavalue_audit add constraint fk_datavalueaudit_datavalue foreign key (dataelementid, periodid, sourceid, categoryoptioncomboid, attributeoptioncomboid) references datavalue (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,494 ERROR: constraint “fk_datavalueaudit_datavalue” for relation “datavalue_audit” already exists (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,499 HHH000388: Unsuccessful: alter table mapview add constraint fk_mapview_maplegendsetid foreign key (legendsetid) references maplegendset (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,500 ERROR: constraint “fk_mapview_maplegendsetid” for relation “mapview” already exists (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,504 HHH000388: Unsuccessful: alter table validationrulegroupmembers add constraint fk_validationrulegroupmembers_validationrulegroupid foreign key (validationgroupid) references validationrulegroup (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,505 ERROR: constraint “fk_validationrulegroupmembers_validationrulegroupid” for relation “validationrulegroupmembers” already exists (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,510 HHH000388: Unsuccessful: alter table validationrulegroupuserrolestoalert add constraint fk_validationrulegroupuserrolestoalert_validationgroupid foreign key (validationgroupid) references validationrulegroup (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,511 ERROR: constraint “fk_validationrulegroupuserrolestoalert_validationgroupid” for relation “validationrulegroupuserrolestoalert” already exists (SchemaUpdate.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:47,778 Found the following message senders: [org.hisp.dhis.message.EmailMessageSender@1d1f5801, org.hisp.dhis.sms.SmsMessageSender@74cab896] (DefaultMessageService.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:55,672 Detected apps: [] (DefaultAppManager.java [pool-2-thread-1])
  • INFO 2014-01-20 14:33:00,922 Executing startup routine [1 of 11, runlevel 1]: PeriodTypePopulator (DefaultStartupRoutineExecutor.java [pool-2-thread-1])
  • INFO 2014-01-20 14:33:00,963 Executing startup routine [2 of 11, runlevel 1]: DataElementDefaultDimensionPopulator (DefaultStartupRoutineExecutor.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:33:01,156 org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of org.hisp.dhis.dataelement.DataElementCategory.dataDimension

at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:108)

at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:710)

at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:371)

at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:4499)

at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:185)

at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:137)

at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1103)

at org.hibernate.loader.Loader.processResultSet(Loader.java:960)

at org.hibernate.loader.Loader.doQuery(Loader.java:910)

at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341)

at org.hibernate.loader.Loader.doList(Loader.java:2516)

at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2361)

at org.hibernate.loader.Loader.list(Loader.java:2324)

at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:490)

at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355)

at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195)

at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1268)

at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)

at org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore.getAllEqName(HibernateIdentifiableObjectStore.java:146)

at org.hisp.dhis.dataelement.DefaultDataElementCategoryService.getDataElementCategoryByName(DefaultDataElementCategoryService.java:175)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

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.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

at com.sun.proxy.$Proxy35.getDataElementCategoryByName(Unknown Source)

at org.hisp.dhis.dataelement.DataElementDefaultDimensionPopulator.execute(DataElementDefaultDimensionPopulator.java:101)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

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.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

at com.sun.proxy.$Proxy78.execute(Unknown Source)

at org.hisp.dhis.system.startup.DefaultStartupRoutineExecutor.execute(DefaultStartupRoutineExecutor.java:115)

at org.hisp.dhis.system.startup.DefaultStartupRoutineExecutor.execute(DefaultStartupRoutineExecutor.java:85)

at org.hisp.dhis.system.startup.StartupListener.contextInitialized(StartupListener.java:68)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)

at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)

at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1599)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

at java.util.concurrent.FutureTask.run(FutureTask.java:166)

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:724)

Caused by: java.lang.IllegalArgumentException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:65)

… 65 more

Yup. Seems to go away after kill/restart.

···

On Mon, Jan 27, 2014 at 8:00 PM, Lars Helge Øverland larshelge@gmail.com wrote:

Lars

Can you try to stop and restart again and see if it goes away?

On Mon, Jan 27, 2014 at 7:44 PM, Jason Pickering jason.p.pickering@gmail.com wrote:

I just upgraded from 2.13 to 2.14 and got this. Anything to be worried about?

Regards,
jason

  • INFO 2014-01-27 19:41:42,637 Hibernate configuration loaded, using dialect: org.hibernate.dialect.PostgreSQLDialect (DefaultHibernateConfigurationProvider.java [pool-2-thread-1])
  • ERROR 2014-01-27 19:42:01,475 HHH000388: Unsuccessful: alter table datavalue add column attributeoptioncomboid int4 not null (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-27 19:42:01,476 ERROR: column “attributeoptioncomboid” contains null values (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-27 19:42:01,676 HHH000388: Unsuccessful: alter table datavalue add constraint fk_datavalue_attributeoptioncomboid foreign key (attributeoptioncomboid) references categoryoptioncombo (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-27 19:42:01,677 ERROR: column “attributeoptioncomboid” referenced in foreign key constraint does not exist (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-27 19:42:01,681 HHH000388: Unsuccessful: alter table datavalue_audit add constraint fk_datavalueaudit_datavalue foreign key (dataelementid, periodid, sourceid, categoryoptioncomboid, attributeoptioncomboid) references datavalue (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-27 19:42:01,688 ERROR: constraint “fk_datavalueaudit_datavalue” for relation “datavalue_audit” already exists (SchemaUpdate.java [pool-2-thread-1])
  • INFO 2014-01-27 19:42:19,583 Found the following message senders: [org.hisp.dhis.message.EmailMessageSender@142499c, org.hisp.dhis.sms.SmsMessageSender@eed8ce] (DefaultMessageService.java [pool-2-thread-1])

On Mon, Jan 20, 2014 at 10:23 PM, Lars Helge Øverland larshelge@gmail.com wrote:

Hi Jason,

had a quick look. It seems the issue is that we have multiple startup routines, in this case first one DataElementDefaultDimensionPopulator that populates the default dimensional categories, then the TableAlteror which adds the new columns for dataelementcategory called “datadimensions”. Now the problem is that the TableAlteror depends on the DataElementDefaultDimensionPopulator to have run earlier, and in this case, the DataElementDefaultDimensionPopulator depends on the TableAlteror to have run earlier.

So fixing it would require us to start splitting up the TableAlteror. This problem will not surfeace unless upgrading from very old versions, or from deleting the default categories. We could look into it later. Your queries will fix the problem. I would have thrown in a check to avoid overwriting existing rows to be on the safe side:

UPDATE dataelementcategory set datadimension=FALSE where datadimension IS NULL;

cheers

Lars

On Mon, Jan 20, 2014 at 3:57 PM, Jason Pickering jason.p.pickering@gmail.com wrote:

Looks like there maybe something missing in the startup scripts. After this…

UPDATE dataelementcategory set datadimension=FALSE;
UPDATE dataelementcategory set dimensiontype=‘disaggregation’;

UPDATE categorycombo set skiptotal = FALSE;

Things seemed to work.

Regards,

Jason


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

On Mon, Jan 20, 2014 at 4:36 PM, Jason Pickering jason.p.pickering@gmail.com wrote:

Hi there. Attempting to upgrade a rather old version of DHIS2 (versoin 2.6) and running into some issues, not surprisingly. I guess maybe upgrading to 2.14 might be too much to ask in one go, so maybe some advice there would be useful.

Anyway, here is what I am getting from the latest 2.14.

Any help appreciated.

Regards,

Jason

Jan 20, 2014 2:32:06 PM org.apache.catalina.startup.HostConfig deployWAR

INFO: Deploying web application archive /home/dhis/tomcat/webapps/dhis.war

  • INFO 2014-01-20 14:32:16,689 System property dhis2.home not set (DefaultLocationManager.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:16,694 Environment variable DHIS2_HOME points to /home/dhis/dhis_home (DefaultLocationManager.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:19,018 Hibernate configuration loaded, using dialect: org.hibernate.dialect.PostgreSQLDialect (DefaultHibernateConfigurationProvider.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,492 HHH000388: Unsuccessful: alter table datavalue_audit add constraint fk_datavalueaudit_datavalue foreign key (dataelementid, periodid, sourceid, categoryoptioncomboid, attributeoptioncomboid) references datavalue (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,494 ERROR: constraint “fk_datavalueaudit_datavalue” for relation “datavalue_audit” already exists (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,499 HHH000388: Unsuccessful: alter table mapview add constraint fk_mapview_maplegendsetid foreign key (legendsetid) references maplegendset (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,500 ERROR: constraint “fk_mapview_maplegendsetid” for relation “mapview” already exists (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,504 HHH000388: Unsuccessful: alter table validationrulegroupmembers add constraint fk_validationrulegroupmembers_validationrulegroupid foreign key (validationgroupid) references validationrulegroup (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,505 ERROR: constraint “fk_validationrulegroupmembers_validationrulegroupid” for relation “validationrulegroupmembers” already exists (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,510 HHH000388: Unsuccessful: alter table validationrulegroupuserrolestoalert add constraint fk_validationrulegroupuserrolestoalert_validationgroupid foreign key (validationgroupid) references validationrulegroup (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,511 ERROR: constraint “fk_validationrulegroupuserrolestoalert_validationgroupid” for relation “validationrulegroupuserrolestoalert” already exists (SchemaUpdate.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:47,778 Found the following message senders: [org.hisp.dhis.message.EmailMessageSender@1d1f5801, org.hisp.dhis.sms.SmsMessageSender@74cab896] (DefaultMessageService.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:55,672 Detected apps: [] (DefaultAppManager.java [pool-2-thread-1])
  • INFO 2014-01-20 14:33:00,922 Executing startup routine [1 of 11, runlevel 1]: PeriodTypePopulator (DefaultStartupRoutineExecutor.java [pool-2-thread-1])
  • INFO 2014-01-20 14:33:00,963 Executing startup routine [2 of 11, runlevel 1]: DataElementDefaultDimensionPopulator (DefaultStartupRoutineExecutor.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:33:01,156 org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of org.hisp.dhis.dataelement.DataElementCategory.dataDimension

at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:108)

at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:710)

at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:371)

at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:4499)

at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:185)

at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:137)

at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1103)

at org.hibernate.loader.Loader.processResultSet(Loader.java:960)

at org.hibernate.loader.Loader.doQuery(Loader.java:910)

at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341)

at org.hibernate.loader.Loader.doList(Loader.java:2516)

at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2361)

at org.hibernate.loader.Loader.list(Loader.java:2324)

at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:490)

at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355)

at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195)

at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1268)

at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)

at org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore.getAllEqName(HibernateIdentifiableObjectStore.java:146)

at org.hisp.dhis.dataelement.DefaultDataElementCategoryService.getDataElementCategoryByName(DefaultDataElementCategoryService.java:175)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

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.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

at com.sun.proxy.$Proxy35.getDataElementCategoryByName(Unknown Source)

at org.hisp.dhis.dataelement.DataElementDefaultDimensionPopulator.execute(DataElementDefaultDimensionPopulator.java:101)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

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.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

at com.sun.proxy.$Proxy78.execute(Unknown Source)

at org.hisp.dhis.system.startup.DefaultStartupRoutineExecutor.execute(DefaultStartupRoutineExecutor.java:115)

at org.hisp.dhis.system.startup.DefaultStartupRoutineExecutor.execute(DefaultStartupRoutineExecutor.java:85)

at org.hisp.dhis.system.startup.StartupListener.contextInitialized(StartupListener.java:68)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)

at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)

at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1599)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

at java.util.concurrent.FutureTask.run(FutureTask.java:166)

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:724)

Caused by: java.lang.IllegalArgumentException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:65)

… 65 more

Good. Problem is that 2.14 changes the primary on datavalue which will fail with nulls in a not-null column, and hibernate tries to perform the schema change before the dhis startup scripts get a chance to run. So next time you start the update has been taken care of.

···

On Mon, Jan 27, 2014 at 9:12 PM, Jason Pickering jason.p.pickering@gmail.com wrote:

Yup. Seems to go away after kill/restart.

On Mon, Jan 27, 2014 at 8:00 PM, Lars Helge Øverland larshelge@gmail.com wrote:

Lars

Can you try to stop and restart again and see if it goes away?

On Mon, Jan 27, 2014 at 7:44 PM, Jason Pickering jason.p.pickering@gmail.com wrote:

I just upgraded from 2.13 to 2.14 and got this. Anything to be worried about?

Regards,
jason

  • INFO 2014-01-27 19:41:42,637 Hibernate configuration loaded, using dialect: org.hibernate.dialect.PostgreSQLDialect (DefaultHibernateConfigurationProvider.java [pool-2-thread-1])
  • ERROR 2014-01-27 19:42:01,475 HHH000388: Unsuccessful: alter table datavalue add column attributeoptioncomboid int4 not null (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-27 19:42:01,476 ERROR: column “attributeoptioncomboid” contains null values (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-27 19:42:01,676 HHH000388: Unsuccessful: alter table datavalue add constraint fk_datavalue_attributeoptioncomboid foreign key (attributeoptioncomboid) references categoryoptioncombo (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-27 19:42:01,677 ERROR: column “attributeoptioncomboid” referenced in foreign key constraint does not exist (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-27 19:42:01,681 HHH000388: Unsuccessful: alter table datavalue_audit add constraint fk_datavalueaudit_datavalue foreign key (dataelementid, periodid, sourceid, categoryoptioncomboid, attributeoptioncomboid) references datavalue (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-27 19:42:01,688 ERROR: constraint “fk_datavalueaudit_datavalue” for relation “datavalue_audit” already exists (SchemaUpdate.java [pool-2-thread-1])
  • INFO 2014-01-27 19:42:19,583 Found the following message senders: [org.hisp.dhis.message.EmailMessageSender@142499c, org.hisp.dhis.sms.SmsMessageSender@eed8ce] (DefaultMessageService.java [pool-2-thread-1])

On Mon, Jan 20, 2014 at 10:23 PM, Lars Helge Øverland larshelge@gmail.com wrote:

Hi Jason,

had a quick look. It seems the issue is that we have multiple startup routines, in this case first one DataElementDefaultDimensionPopulator that populates the default dimensional categories, then the TableAlteror which adds the new columns for dataelementcategory called “datadimensions”. Now the problem is that the TableAlteror depends on the DataElementDefaultDimensionPopulator to have run earlier, and in this case, the DataElementDefaultDimensionPopulator depends on the TableAlteror to have run earlier.

So fixing it would require us to start splitting up the TableAlteror. This problem will not surfeace unless upgrading from very old versions, or from deleting the default categories. We could look into it later. Your queries will fix the problem. I would have thrown in a check to avoid overwriting existing rows to be on the safe side:

UPDATE dataelementcategory set datadimension=FALSE where datadimension IS NULL;

cheers

Lars

On Mon, Jan 20, 2014 at 3:57 PM, Jason Pickering jason.p.pickering@gmail.com wrote:

Looks like there maybe something missing in the startup scripts. After this…

UPDATE dataelementcategory set datadimension=FALSE;
UPDATE dataelementcategory set dimensiontype=‘disaggregation’;

UPDATE categorycombo set skiptotal = FALSE;

Things seemed to work.

Regards,

Jason


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

On Mon, Jan 20, 2014 at 4:36 PM, Jason Pickering jason.p.pickering@gmail.com wrote:

Hi there. Attempting to upgrade a rather old version of DHIS2 (versoin 2.6) and running into some issues, not surprisingly. I guess maybe upgrading to 2.14 might be too much to ask in one go, so maybe some advice there would be useful.

Anyway, here is what I am getting from the latest 2.14.

Any help appreciated.

Regards,

Jason

Jan 20, 2014 2:32:06 PM org.apache.catalina.startup.HostConfig deployWAR

INFO: Deploying web application archive /home/dhis/tomcat/webapps/dhis.war

  • INFO 2014-01-20 14:32:16,689 System property dhis2.home not set (DefaultLocationManager.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:16,694 Environment variable DHIS2_HOME points to /home/dhis/dhis_home (DefaultLocationManager.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:19,018 Hibernate configuration loaded, using dialect: org.hibernate.dialect.PostgreSQLDialect (DefaultHibernateConfigurationProvider.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,492 HHH000388: Unsuccessful: alter table datavalue_audit add constraint fk_datavalueaudit_datavalue foreign key (dataelementid, periodid, sourceid, categoryoptioncomboid, attributeoptioncomboid) references datavalue (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,494 ERROR: constraint “fk_datavalueaudit_datavalue” for relation “datavalue_audit” already exists (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,499 HHH000388: Unsuccessful: alter table mapview add constraint fk_mapview_maplegendsetid foreign key (legendsetid) references maplegendset (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,500 ERROR: constraint “fk_mapview_maplegendsetid” for relation “mapview” already exists (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,504 HHH000388: Unsuccessful: alter table validationrulegroupmembers add constraint fk_validationrulegroupmembers_validationrulegroupid foreign key (validationgroupid) references validationrulegroup (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,505 ERROR: constraint “fk_validationrulegroupmembers_validationrulegroupid” for relation “validationrulegroupmembers” already exists (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,510 HHH000388: Unsuccessful: alter table validationrulegroupuserrolestoalert add constraint fk_validationrulegroupuserrolestoalert_validationgroupid foreign key (validationgroupid) references validationrulegroup (SchemaUpdate.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:32:39,511 ERROR: constraint “fk_validationrulegroupuserrolestoalert_validationgroupid” for relation “validationrulegroupuserrolestoalert” already exists (SchemaUpdate.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:47,778 Found the following message senders: [org.hisp.dhis.message.EmailMessageSender@1d1f5801, org.hisp.dhis.sms.SmsMessageSender@74cab896] (DefaultMessageService.java [pool-2-thread-1])
  • INFO 2014-01-20 14:32:55,672 Detected apps: [] (DefaultAppManager.java [pool-2-thread-1])
  • INFO 2014-01-20 14:33:00,922 Executing startup routine [1 of 11, runlevel 1]: PeriodTypePopulator (DefaultStartupRoutineExecutor.java [pool-2-thread-1])
  • INFO 2014-01-20 14:33:00,963 Executing startup routine [2 of 11, runlevel 1]: DataElementDefaultDimensionPopulator (DefaultStartupRoutineExecutor.java [pool-2-thread-1])
  • ERROR 2014-01-20 14:33:01,156 org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of org.hisp.dhis.dataelement.DataElementCategory.dataDimension

at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:108)

at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:710)

at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:371)

at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:4499)

at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:185)

at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:137)

at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1103)

at org.hibernate.loader.Loader.processResultSet(Loader.java:960)

at org.hibernate.loader.Loader.doQuery(Loader.java:910)

at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341)

at org.hibernate.loader.Loader.doList(Loader.java:2516)

at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2361)

at org.hibernate.loader.Loader.list(Loader.java:2324)

at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:490)

at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355)

at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195)

at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1268)

at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)

at org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore.getAllEqName(HibernateIdentifiableObjectStore.java:146)

at org.hisp.dhis.dataelement.DefaultDataElementCategoryService.getDataElementCategoryByName(DefaultDataElementCategoryService.java:175)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

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.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

at com.sun.proxy.$Proxy35.getDataElementCategoryByName(Unknown Source)

at org.hisp.dhis.dataelement.DataElementDefaultDimensionPopulator.execute(DataElementDefaultDimensionPopulator.java:101)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

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.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

at com.sun.proxy.$Proxy78.execute(Unknown Source)

at org.hisp.dhis.system.startup.DefaultStartupRoutineExecutor.execute(DefaultStartupRoutineExecutor.java:115)

at org.hisp.dhis.system.startup.DefaultStartupRoutineExecutor.execute(DefaultStartupRoutineExecutor.java:85)

at org.hisp.dhis.system.startup.StartupListener.contextInitialized(StartupListener.java:68)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)

at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)

at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1599)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

at java.util.concurrent.FutureTask.run(FutureTask.java:166)

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:724)

Caused by: java.lang.IllegalArgumentException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:65)

… 65 more