Non existent id to sam_pub enpoint leads to hibernate error

Description

if you pass and invalid id to the sam_pub endpoint a hiberrnate error is thrown rather that returning null so the client gets a 500 rather than null:

org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [org.sakaiproject.tool.assessment.data.dao.assessment.PublishedAssessmentData#1]:
java.lang.RuntimeException: org.springframework.orm.hibernate3.HibernateObjectRetrievalFailureException: No row with the given identifier exists: [org.sakaiproject.tool.assessment.data.dao.assessment.PublishedAssessmentData#1]; nested exception is org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [org.sakaiproject.tool.assessment.data.dao.assessment.PublishedAssessmentData#1]
at org.sakaiproject.tool.assessment.services.assessment.PublishedAssessmentService.getPublishedAssessment(PublishedAssessmentService.java:194)
at org.sakaiproject.tool.assessment.entity.impl.PublishedAssessmentEntityProviderImpl.entityExists(PublishedAssessmentEntityProviderImpl.java:45)
at org.sakaiproject.entitybroker.impl.EntityBrokerManagerImpl.entityExists(EntityBrokerManagerImpl.java:162)
at org.sakaiproject.entitybroker.rest.EntityHandlerImpl.handleEntityAccess(EntityHandlerImpl.java:328)
at org.sakaiproject.entitybroker.util.servlet.DirectServlet.dispatch(DirectServlet.java:181)
at org.sakaiproject.entitybroker.servlet.SakaiDirectServlet.dispatch(SakaiDirectServlet.java:144)
at org.sakaiproject.entitybroker.util.servlet.DirectServlet.handleRequest(DirectServlet.java:152)
at org.sakaiproject.entitybroker.util.servlet.DirectServlet.service(DirectServlet.java:130)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:652)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.springframework.orm.hibernate3.HibernateObjectRetrievalFailureException: No row with the given identifier exists: [org.sakaiproject.tool.assessment.data.dao.assessment.PublishedAssessmentData#1]; nested exception is org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [org.sakaiproject.tool.assessment.data.dao.assessment.PublishedAssessmentData#1]
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:660)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.load(HibernateTemplate.java:563)
at org.springframework.orm.hibernate3.HibernateTemplate.load(HibernateTemplate.java:557)
at org.sakaiproject.tool.assessment.facade.PublishedAssessmentFacadeQueries.loadPublishedAssessment(PublishedAssessmentFacadeQueries.java:857)
at org.sakaiproject.tool.assessment.facade.PublishedAssessmentFacadeQueries.getPublishedAssessment(PublishedAssessmentFacadeQueries.java:639)
at org.sakaiproject.tool.assessment.facade.PublishedAssessmentFacadeQueries.getPublishedAssessment(PublishedAssessmentFacadeQueries.java:635)
at sun.reflect.GeneratedMethodAccessor4221.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy59.getPublishedAssessment(Unknown Source)
at org.sakaiproject.tool.assessment.services.assessment.PublishedAssessmentService.getPublishedAssessment(PublishedAssessmentService.java:188)
... 26 more
Caused by: org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [org.sakaiproject.tool.assessment.data.dao.assessment.PublishedAssessmentData#1]
at org.hibernate.impl.SessionFactoryImpl$1.handleEntityNotFound(SessionFactoryImpl.java:386)
at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:145)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:179)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:879)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:796)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:789)
at org.springframework.orm.hibernate3.HibernateTemplate$3.doInHibernate(HibernateTemplate.java:569)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
... 43 more

Activity

Show:

David Horwitz April 2, 2012 at 4:30 AM

now returns null, noted in javadocs and covered by unit test

Fixed

Details

Priority

Affects versions

Fix versions

Assignee

Reporter

Created March 18, 2011 at 5:03 AM
Updated April 17, 2018 at 8:38 AM
Resolved April 2, 2012 at 4:30 AM

Flag notifications