← Back to team overview

dhis2-devs team mailing list archive

[issue] Metadata Import fails when modifying a tracker program and tracker program stage

 

Hi,

We are using the latest version of DHIS 2.25 (build - 5e16867). We have two
instances of DHIS and are trying to sync metadata from one instance to the
other. Sync is failing for the following cases.


*Modifying a Tracker program (i.e. program “with registration”)  *

* INFO  2016-11-02 16:36:27,877 (admin) Creating 1 object(s) of type
ProgramTrackedEntityAttribute (DefaultObjectBundleService.java
[http-bio-8080-exec-7])
* *WARN  2016-11-02 16:36:27,902 SQL Error: 0, SQLState: 23505
(SqlExceptionHelper.java [http-bio-8080-exec-7])*
** ERROR 2016-11-02 16:36:27,903 ERROR: duplicate key value violates unique
constraint "programtrackedentityattribute_unique_key"*
*  Detail: Key (programid, trackedentityattributeid)=(80, 74) already
exists. (SqlExceptionHelper.java [http-bio-8080-exec-7])*
** ERROR 2016-11-02 16:36:27,916 Exception occurred while trying to import
the metadata. could not execute statement (MetadataSyncImportHandler.java
[http-bio-8080-exec-7])*
*org.hibernate.exception.ConstraintViolationException: could not execute
statement*
at
org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:112)
at
org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
at
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)
at
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97)
at
org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:207)
at
org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:45)
at
org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2921)
at
org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3421)
at
org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:89)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:560)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:434)
at
org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337)
at
org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1295)
at
org.hisp.dhis.dxf2.metadata.objectbundle.DefaultObjectBundleService.commit(DefaultObjectBundleService.java:160)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Caused by: org.postgresql.util.PSQLException: ERROR: duplicate key value
violates unique constraint "programtrackedentityattribute_unique_key"
  Detail: Key (programid, trackedentityattributeid)=(80, 74) already exists.
at
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2284)
at
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2003)
at
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:200)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:424)
at
org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:161)
at
org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:133)
at
com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105)
at
org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:204)




*Modifying the program stage of a Tracker program (i.e. program “with
registration”)*

* INFO  2016-11-02 16:55:26,050 (admin) Updating 1 object(s) of type
ProgramStage (DefaultObjectBundleService.java [http-bio-8080-exec-10])
* INFO  2016-11-02 16:55:26,065 (admin) Updating 2 object(s) of type
ProgramStageDataElement (DefaultObjectBundleService.java
[http-bio-8080-exec-10])
* *ERROR 2016-11-02 16:55:26,073 Exception occurred while trying to import
the metadata. Batch update returned unexpected row count from update [0];
actual row count: 0; expected: 1 (MetadataSyncImportHandler.java
[http-bio-8080-exec-10])*
*org.hibernate.StaleStateException: Batch update returned unexpected row
count from update [0]; actual row count: 0; expected: 1*
at
org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:67)
at
org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:54)
at
org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:46)
at
org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3106)
at
org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2985)
at
org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3365)
at
org.hibernate.action.internal.EntityUpdateAction.execute(EntityUpdateAction.java:145)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:560)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:434)
at
org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337)
at
org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1295)
at
org.hisp.dhis.dxf2.metadata.objectbundle.DefaultObjectBundleService.commit(DefaultObjectBundleService.java:160)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at
org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at
org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
at com.sun.proxy.$Proxy186.commit(Unknown Source)


Could you please help fix the issues.


*Cheers,*

Archana Chillala
Application Developer
Email archanac@xxxxxxxxxxxxxxxx
Telephone +91 9100960533 <+91+9100960533>
[image: ThoughtWorks]
<http://www.thoughtworks.com/?utm_campaign=archana-chillala-signature&utm_medium=email&utm_source=thoughtworks-email-signature-generator>

Follow ups