Non existent id to sam_pub enpoint leads to hibernate error
GENERAL
TESTING
GENERAL
TESTING
Description
Activity
Show:
David Horwitz April 2, 2012 at 4:30 AM
now returns null, noted in javadocs and covered by unit test
Fixed
Details
Details
Priority
Affects versions
Fix versions
Components
Assignee
David Horwitz
David HorwitzReporter
David Horwitz
David HorwitzCreated March 18, 2011 at 5:03 AM
Updated April 17, 2018 at 8:38 AM
Resolved April 2, 2012 at 4:30 AM
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