Details
-
Bug
-
Resolution: Fixed
-
Medium
-
1.0 Alpha3
-
None
Description
When a page is removed, its ID still exists in the history. When the history is requested, persistanceManager.getPage(<insert page id>) is called on all these ids and it dies on the deleted page id.
There is currently no pageExists() kind of method either. Maybe we need one.
Stack trace:
2003-11-25 17:11:03,515 ERROR [sf.hibernate.proxy.LazyInitializer] Exception initializing proxy
net.sf.hibernate.ObjectNotFoundException: No row with the given identifier exists: 20, of class: com.atlassian.confluence.pages.Page
at net.sf.hibernate.impl.SessionImpl.throwObjectNotFound(SessionImpl.java:1949)
at net.sf.hibernate.impl.SessionImpl.immediateLoad(SessionImpl.java:1975)
at net.sf.hibernate.proxy.LazyInitializer.initialize(LazyInitializer.java:49)
at net.sf.hibernate.proxy.LazyInitializer.initializeWrapExceptions(LazyInitializer.java:56)
at net.sf.hibernate.proxy.LazyInitializer.getImplementation(LazyInitializer.java:156)
at net.sf.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:75)
at com.atlassian.confluence.pages.Page$$EnhancedByCGLIB$$0.clone(<generated>)
at com.atlassian.confluence.persistence.hibernate.HibernatePersistenceManager.addOriginalUnmodifiedObject(HibernatePersistenceManager.java:33)
at com.atlassian.confluence.persistence.confluence.ConfluencePersistenceManager.getById(ConfluencePersistenceManager.java:107)
at com.atlassian.confluence.pages.DefaultPageManager.getPage(DefaultPageManager.java:39)
at com.atlassian.confluence.user.actions.ViewUserHistoryAction.execute(ViewUserHistoryAction.java:39)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:172)
at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.intercept(DefaultWorkflowInterceptor.java:58)
at com.atlassian.confluence.ConfluenceWorkflowInterceptor.intercept(ConfluenceWorkflowInterceptor.java:17)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37)
at com.atlassian.confluence.ConfluenceValidationInterceptor.intercept(ConfluenceValidationInterceptor.java:17)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169)
at com.atlassian.confluence.security.actions.PermissionCheckInterceptor.intercept(PermissionCheckInterceptor.java:39)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37)