← Back to team overview

dhis2-devs team mailing list archive

Re: Adding compulsory data elements

 

Hey devs,

Be great to get a response on this. At the moment it's preventing us from
using compulsory data elements at all.

I've reproduced it on other 2.26 instances too.

Thanks,

- Jasper

On Tue, Nov 14, 2017 at 1:02 PM, Jasper Timm <jasper.timm@xxxxxxxxxxxxxxxxxx
> wrote:

> Hi devs,
>
> We're having trouble making data elements compulsory for a data set. This
> is for DHIS2 2.26.
>
> When attempting to save a data set after adding data elements as
> compulsory we get the following 500 error from the server:
> "No row with the given identifier exists: [org.hisp.dhis.dataset.
> DataSetElement#30043359]"
>
> The given id does exist in the DataSetElement table. If I was to guess, it
> appears to be an issue with Hibernate caching...
>
> (Note, we were previously getting an error on the uniqueness constraint
> for dataElementOperands, but we've removed this constraint from the DB.)
>
> Here is the relevant part of the stack trace:
>
>
> 11:07:39
> * INFO 2017-11-14 11:07:39,759 (admin) Updating 1 object(s) of type
> DataSet (DefaultObjectBundleService.java [http-apr-8080-exec-3685])
> 
> 11:07:39
> org.hibernate.ObjectNotFoundException: No row with the given identifier
> exists: [org.hisp.dhis.dataset.DataSetElement#30043359]
> 
> 11:07:39
> at org.hibernate.boot.internal.StandardEntityNotFoundDelegate
> .handleEntityNotFound(StandardEntityNotFoundDelegate.java:28)
> 
> 11:07:39
> at org.hibernate.event.internal.DefaultLoadEventListener.load(
> DefaultLoadEventListener.java:227)
> 
> 11:07:39
> at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(
> DefaultLoadEventListener.java:278)
> 
> 11:07:39
> at org.hibernate.event.internal.DefaultLoadEventListener.doOnLoad(
> DefaultLoadEventListener.java:121)
> 
> 11:07:39
> at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(
> DefaultLoadEventListener.java:89)
> 
> 11:07:39
> at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1142)
> 
> 11:07:39
> at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1025)
> 
> 11:07:39
> at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:639)
> 
> 11:07:39
> at org.hibernate.type.ManyToOneType.assemble(ManyToOneType.java:252)
> 
> 11:07:39
> at org.hibernate.collection.internal.PersistentSet.initializeFromCache(
> PersistentSet.java:128)
> 
> 11:07:39
> at org.hibernate.cache.spi.entry.CollectionCacheEntry.assemble(
> CollectionCacheEntry.java:58)
> 
> 11:07:39
> at org.hibernate.event.internal.DefaultInitializeCollectionEventListener.
> initializeCollectionFromCache(DefaultInitializeCollectionEve
> ntListener.java:144)
> 
> 11:07:39
> at org.hibernate.event.internal.DefaultInitializeCollectionEventListener.
> onInitializeCollection(DefaultInitializeCollectionEventListener.java:59)
> 
> 11:07:39
> at org.hibernate.internal.SessionImpl.initializeCollection(
> SessionImpl.java:2004)
> 
> 11:07:39
> at org.hibernate.collection.internal.AbstractPersistentCollection$
> 4.doWork(AbstractPersistentCollection.java:567)
> 
> 11:07:39
> at org.hibernate.collection.internal.AbstractPersistentCollection.
> withTemporarySessionIfNeeded(AbstractPersistentCollection.java:249)
> 
> 11:07:39
> at org.hibernate.collection.internal.AbstractPersistentCollection.
> initialize(AbstractPersistentCollection.java:563)
> 
> 11:07:39
> at org.hibernate.collection.internal.AbstractPersistentCollection.read(
> AbstractPersistentCollection.java:132)
> 
> 11:07:39
> at org.hibernate.collection.internal.PersistentSet.
> iterator(PersistentSet.java:163)
> 
> 11:07:39
> at java.util.Spliterators$IteratorSpliterator.estimateSize(Spliterators.
> java:1821)
> 
> 11:07:39
> at java.util.Spliterator.getExactSizeIfKnown(Spliterator.java:408)
> 
> 11:07:39
> at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:480)
> 
> 11:07:39
> at java.util.stream.AbstractPipeline.wrapAndCopyInto(
> AbstractPipeline.java:471)
> 
> 11:07:39
> at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(
> ReduceOps.java:708)
> 
> 11:07:39
> at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> 
> 11:07:39
> at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
> 
> 11:07:39
> at org.hisp.dhis.dataelement.DataElement.getDataSets(DataElement.java:309)
> 
> 11:07:39
> at org.hisp.dhis.dataelement.DataElement.getDataSet(DataElement.java:284)
> 
> 11:07:39
> at org.hisp.dhis.dataelement.DataElement.getPeriodType(
> DataElement.java:352)
> 
> 11:07:39
> at org.hisp.dhis.dataelement.DataElement.getFrequencyOrder(
> DataElement.java:433)
> 
> 11:07:39
> at org.hisp.dhis.dataelement.DataElementOperand.updateProperties(
> DataElementOperand.java:398)
> 
> 11:07:39
> at org.hisp.dhis.dataelement.DataElementOperand.hashCode(
> DataElementOperand.java:614)
> 
> 11:07:39
> at java.util.HashMap.hash(HashMap.java:338)
> 
> 11:07:39
> at java.util.HashMap.put(HashMap.java:611)
> 
> 11:07:39
> at java.util.HashSet.add(HashSet.java:219)
> 
> 11:07:39
> at org.hibernate.collection.internal.PersistentSet.add(
> PersistentSet.java:186)
> 
> 11:07:39
> at org.hisp.dhis.dxf2.metadata.objectbundle.hooks.DataSetObjectBundleHook.
> postUpdate(DataSetObjectBundleHook.java:187)
>
>
> --
>
> *Jasper Timm*
>
> Lead Software Developer
>
> *eHealth Africa*
>
> Mobile +232 99891119 <+23299891119>
>
> www.ehealthafrica.org
>
>
> <http://www.ehealthafrica.org/>
>
>


-- 

*Jasper Timm*

Lead Software Developer

*eHealth Africa*

Mobile +232 99891119 <+23299891119>

www.ehealthafrica.org


<http://www.ehealthafrica.org/>

References