Uploaded image for project: 'Gateway'
  1. Gateway
  2. GTWY-741

Creating a DataTransfer request may result in an InternalServer error page.

XMLWordPrintable

      Creating a DataTransfer request may generate an error page based on an underlying StaleObjectStateException. This issue is related to the user workspace and hibernate optimistic locking. Ideally the workspace should be refreshed or the datat transfer system should not rely on the user workspace to generate the "next" data transfer number. This may be modeled poorly and the transfer creation details should be handled by the DataTransferService as opposed to implementing this behavior in the Workspace class. The application log shows an exception:








      2009-08-31 14:06:12,019 org.hibernate.event.def.AbstractFlushingEventListener [ERROR]: Could not synchronize database state with session
      org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [eske.model.workspace.Workspace#b1844da4-971a-4d59-a2b5-c5ab294627ca]
              at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1792)
              at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2435)
              at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2335)
              at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2635)
              at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:115)
              at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
              at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
              at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
              at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
              at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
              at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
              at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365)
              at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
              at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:655)
              at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:732)
              at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:701)
              at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
              at eske.service.workspace.impl.spring.WorkspaceServiceImpl.storeWorkspace(Unknown Source)
              at eske.service.workspace.impl.spring.WorkspaceServiceImpl.getNextRequestNumber(Unknown Source)
              at eske.service.workspace.impl.spring.DataTransferServiceImpl.buildDataTransferRequest(Unknown Source)
              at eske.service.workspace.impl.spring.DataTransferServiceImpl.submit(Unknown Source)
              at eske.web.controllers.workspace.DataTransferController.handleRequest(Unknown Source)
              at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
              at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
              at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
              at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
              at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at eske.web.filters.metrics.ClickstreamFilter.doFilter(Unknown Source)
              at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
              at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at eske.web.filters.metrics.UserAgentFilter.doFilter(Unknown Source)
              at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
              at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:359)
              at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
              at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at eske.web.filters.security.OpenidProviderIntegrationFilter.doFilterHttp(Unknown Source)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:271)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:271)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.securechannel.ChannelProcessingFilter.doFilterHttp(ChannelProcessingFilter.java:116)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:174)
              at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
              at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
              at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
              at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
              at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
              at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
              at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
              at java.lang.Thread.run(Thread.java:619)
      2009-08-31 14:06:12,024 eske.web.exception.resolvers.LoggingExceptionHandler [ERROR]: Exception occurred
      Request URL: /workspace/user/dataTransfer.htm

      org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Object of class [eske.model.workspace.Workspace] with identifier [b1844da4-971a-4d59-a2b5-c5ab294627ca]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [eske.model.workspace.Workspace#b1844da4-971a-4d59-a2b5-c5ab294627ca]
              at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:669)
              at org.springframework.orm.hibernate3.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:789)
              at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:663)
              at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:732)
              at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:701)
              at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
              at eske.service.workspace.impl.spring.WorkspaceServiceImpl.storeWorkspace(Unknown Source)
              at eske.service.workspace.impl.spring.WorkspaceServiceImpl.getNextRequestNumber(Unknown Source)
              at eske.service.workspace.impl.spring.DataTransferServiceImpl.buildDataTransferRequest(Unknown Source)
              at eske.service.workspace.impl.spring.DataTransferServiceImpl.submit(Unknown Source)
              at eske.web.controllers.workspace.DataTransferController.handleRequest(Unknown Source)
              at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
              at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
              at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
              at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
              at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at eske.web.filters.metrics.ClickstreamFilter.doFilter(Unknown Source)
              at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
              at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at eske.web.filters.metrics.UserAgentFilter.doFilter(Unknown Source)
              at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
              at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:359)
              at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
              at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at eske.web.filters.security.OpenidProviderIntegrationFilter.doFilterHttp(Unknown Source)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:271)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:271)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.securechannel.ChannelProcessingFilter.doFilterHttp(ChannelProcessingFilter.java:116)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
              at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:174)
              at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
              at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
              at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
              at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
              at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
              at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
              at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
              at java.lang.Thread.run(Thread.java:619)
      Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [eske.model.workspace.Workspace#b1844da4-971a-4d59-a2b5-c5ab294627ca]
              at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1792)
              at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2435)
              at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2335)
              at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2635)
              at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:115)
              at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
              at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
              at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
              at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
              at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
              at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
              at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365)
              at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
              at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:655)

              ejn Eric Nienhouse
              ejn Eric Nienhouse
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved:

                  Estimated:
                  Original Estimate - 2 days
                  2d
                  Remaining:
                  Remaining Estimate - 2 days
                  2d
                  Logged:
                  Time Spent - Not Specified
                  Not Specified