• Views
  • Iteration Report
  • My Iteration Report
  •  
OMERO.server
  • Login
  • Help/Guide
  • About Trac
  • Preferences
  • Wiki
  • Timeline
  • Roadmap
  • Browse Source
  • View Tickets
  • Search

Context Navigation

  • ← Previous Ticket
  • Next Ticket →

Ticket #735 (closed defect: fixed)

Opened 15 months ago

Last modified 10 months ago

IPojos.findContainerHierarchies() fails with ValidationException

Reported by: dwhitehurst-x Owned by: jmoore
Priority: critical Milestone: 3.0-Beta2.2
Component: Client Version: 3.0-Beta1
Keywords: PojoServiceTest fail Cc:

Description (last modified by jmoore) (diff)

Client integration tests fail with nested Hibernate error "not null property references a null or transient value" in PojoServiceTest?, method testFindContainerHierarchies rather than the expected Api usage exception.

Test marked as "broken"

try {
       results = iPojos.findContainerHierarchies(Dataset.class, ids, empty
                   .map());
           fail("Should fail");
       } catch (ApiUsageException e) {
           // ok.
       }

Change History

Changed 15 months ago by dwhitehurst-x

  • owner changed from Josh to jmoore

Changed 15 months ago by jmoore

  • description modified (diff)
  • milestone changed from 3.0-Beta2 to 3.0-Beta3

Changed 10 months ago by jmoore

  • priority changed from minor to critical

Investigating this now. Has appeared in the wild.

Changed 10 months ago by jmoore

  • status changed from new to assigned
  • version set to 3.0-Beta1
  • description modified (diff)
  • summary changed from PojoServiceTest Fails as Noted to IPojos.findContainerHierarchies() fails with ValidationException

This issue was not was to track down. The implementation of findContainerHierarchies walks a graph returned from Hibernate and rearranges the entities in a read-only graph. However, to prevent Hibernate from saving the rearragements, first the entities are evicted from the session.

The exception that's being thrown here:

ome.conditions.ValidationException: not-null property references a null or transient value: ome.model.containers.DatasetImageLink.details.creati
onEvent; nested exception is org.hibernate.PropertyValueException: not-null property references a null or transient value: ome.model.containers.DatasetImageLink.detail
s.creationEvent
        at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:628)
        at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
        at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:377)
        at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:338)
        at ome.security.basic.EventHandler.invoke(EventHandler.java:160)
...

just says that one of the read-only links created for the read-only graph is missing some values. That's fine, we expect as much. The question is why is it even checking. Because an object is still reachable that shouldn't be.

Turns out the cyclical relationship image->defaultPixels->image is again causing problems (this will probably be removed in the next version.)

Fixed by r1921.

Changed 10 months ago by jmoore

  • status changed from assigned to closed
  • resolution set to fixed
  • milestone changed from 3.0-Beta3 to 3.0-Beta2.2

Included in milestone:3.0-Beta2.2.

Note: See TracTickets for help on using tickets.

Download in other formats:

  • Comma-delimited Text
  • Tab-delimited Text
  • RSS Feed

Trac Powered

Powered by Trac 0.11
By Edgewall Software.

Visit the Trac open source project at
http://trac.edgewall.org/