Project

General

Profile

bug #6730

Updated by Andreas Müller almost 7 years ago

The same problem as described in #6527#note-6 also appears in media bulk editor if you try to delete a media that is used for a protolog (TaxonNameDescription). The check only seems to check for TaxonDescription and SpecimenDescription. But there are multiple places where media can be added and reference. We ALWAYS need a general getReferencingObjects check in case any unexpected reference still exists. This is also important for model changes. 

 Currently if you delete the image and afterwards you open the name the protolog was attached to you get an ObjectNotFoundException exception which pops up in loop (this should also never happen, for NO exception, please feel free to open a new ticket for this).  



 ~~~ 
 login : admin 
 editor version : 4.8.0.201706150749 
 server : test.e-taxonomy.eu (edit-test) / rem_conf_am 
 schema version : 4.7.0.0.201710040000 
 os : Windows Server 2012 R2 6.3 amd64 
 java : 1.8.0_121 
 org.eclipse.swt.SWTException: Failed to execute runnable (eu.etaxonomy.taxeditor.remoting.CdmEagerLoadingException: org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [eu.etaxonomy.cdm.model.media.Media#221]) 
	 at org.eclipse.swt.SWT.error(SWT.java:4533) 
	 at org.eclipse.swt.SWT.error(SWT.java:4448) 
	 at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185) 
	 at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211) 
	 at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827) 
	 at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) 
	 at org.eclipse.jface.window.Window.open(Window.java:794) 
	 at org.eclipse.jface.dialogs.ErrorDialog.open(ErrorDialog.java:346) 
	 at eu.etaxonomy.taxeditor.model.MessagingUtils$1.run(MessagingUtils.java:279) 
	 at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) 
	 at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) 
	 at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211) 
	 at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827) 
	 at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1121) 
	 at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) 
	 at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1022) 
	 at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150) 
	 at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:693) 
	 at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) 
	 at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:610) 
	 at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) 
	 at eu.etaxonomy.taxeditor.Application.start(Application.java:24) 
	 at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
	 at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) 
	 at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) 
	 at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388) 
	 at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) 
	 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
	 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
	 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
	 at java.lang.reflect.Method.invoke(Method.java:498) 
	 at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673) 
	 at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610) 
	 at org.eclipse.equinox.launcher.Main.run(Main.java:1519) 
 Caused by: eu.etaxonomy.taxeditor.remoting.CdmEagerLoadingException: org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [eu.etaxonomy.cdm.model.media.Media#221] 
	 at org.hibernate.collection.internal.AbstractPersistentCollection.remoteInitialize(AbstractPersistentCollection.java:1358) 
	 at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:627) 
	 at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:167) 
	 at org.hibernate.collection.internal.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:184) 
	 at org.hibernate.collection.internal.PersistentList.size(PersistentList.java:114) 
	 at eu.etaxonomy.taxeditor.ui.section.name.ProtologueElement.setEntity(ProtologueElement.java:77) 
	 at eu.etaxonomy.taxeditor.ui.section.name.ProtologueElement.setEntity(ProtologueElement.java:1) 
	 at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement.<init>(AbstractEntityCollectionElement.java:106) 
	 at eu.etaxonomy.taxeditor.ui.section.name.ProtologueElement.<init>(ProtologueElement.java:60) 
	 at eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.createEntityCollectionElement(CdmFormFactory.java:2702) 
	 at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection.createElementComposite(AbstractEntityCollectionSection.java:263) 
	 at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection.createDynamicContents(AbstractEntityCollectionSection.java:251) 
	 at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection.renderContent(AbstractEntityCollectionSection.java:220) 
	 at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection.internalUpdateSection(AbstractEntityCollectionSection.java:203) 
	 at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection.setEntity(AbstractEntityCollectionSection.java:161) 
	 at eu.etaxonomy.taxeditor.ui.section.name.ProtologueSection.setTaxonBase(ProtologueSection.java:105) 
	 at eu.etaxonomy.taxeditor.view.detail.CdmSectionPart.setFormInput(CdmSectionPart.java:91) 
	 at org.eclipse.ui.forms.ManagedForm.setInput(ManagedForm.java:210) 
	 at eu.etaxonomy.taxeditor.view.AbstractCdmDataViewer.refresh(AbstractCdmDataViewer.java:123) 
	 at eu.etaxonomy.taxeditor.view.AbstractCdmDataViewer.setInput(AbstractCdmDataViewer.java:109) 
	 at eu.etaxonomy.taxeditor.view.detail.DetailsViewer.setInput(DetailsViewer.java:161) 
	 at eu.etaxonomy.taxeditor.view.detail.DetailsViewPart.showViewer(DetailsViewPart.java:268) 
	 at eu.etaxonomy.taxeditor.view.detail.DetailsViewPart.selectionChanged_internal(DetailsViewPart.java:136) 
	 at eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart$DelaySelection.run(AbstractCdmEditorViewPart.java:52) 
	 at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) 
	 at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) 
	 ... 31 more 
 Caused by: org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [eu.etaxonomy.cdm.model.media.Media#221] 
	 at org.hibernate.boot.internal.StandardEntityNotFoundDelegate.handleEntityNotFound(StandardEntityNotFoundDelegate.java:28) 
	 at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:227) 
	 at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:278) 
	 at org.hibernate.event.internal.DefaultLoadEventListener.doOnLoad(DefaultLoadEventListener.java:121) 
	 at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:89) 
	 at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1129) 
	 at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1022) 
	 at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:632) 
	 at org.hibernate.type.EntityType.resolve(EntityType.java:424) 
	 at org.hibernate.type.EntityType.nullSafeGet(EntityType.java:262) 
	 at org.hibernate.persister.collection.AbstractCollectionPersister.readElement(AbstractCollectionPersister.java:833) 
	 at org.hibernate.collection.internal.PersistentList.readFrom(PersistentList.java:382) 
	 at org.hibernate.loader.Loader.readCollectionElement(Loader.java:1353) 
	 at org.hibernate.loader.Loader.readCollectionElements(Loader.java:892) 
	 at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:738) 
	 at org.hibernate.loader.Loader.processResultSet(Loader.java:972) 
	 at org.hibernate.loader.Loader.doQuery(Loader.java:930) 
	 at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336) 
	 at org.hibernate.loader.Loader.doList(Loader.java:2611) 
	 at org.hibernate.loader.Loader.doList(Loader.java:2594) 
	 at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2423) 
	 at org.hibernate.loader.Loader.list(Loader.java:2418) 
	 at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:501) 
	 at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:371) 
	 at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:216) 
	 at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1326) 
	 at org.hibernate.internal.QueryImpl.list(QueryImpl.java:87) 
	 at eu.etaxonomy.cdm.persistence.dao.initializer.AdvancedBeanInitializer.bulkLoadLazyCollections(AdvancedBeanInitializer.java:526) 
	 at eu.etaxonomy.cdm.persistence.dao.initializer.AdvancedBeanInitializer.bulkLoadLazies(AdvancedBeanInitializer.java:435) 
	 at eu.etaxonomy.cdm.persistence.dao.initializer.AdvancedBeanInitializer.initializeNodeNoWildcard(AdvancedBeanInitializer.java:244) 
	 at eu.etaxonomy.cdm.persistence.dao.initializer.AdvancedBeanInitializer.initializeNode(AdvancedBeanInitializer.java:125) 
	 at eu.etaxonomy.cdm.persistence.dao.initializer.AdvancedBeanInitializer.initializeNodeRecursive(AdvancedBeanInitializer.java:105) 
	 at eu.etaxonomy.cdm.persistence.dao.initializer.AdvancedBeanInitializer.initializeNodeRecursive(AdvancedBeanInitializer.java:107) 
	 at eu.etaxonomy.cdm.persistence.dao.initializer.AdvancedBeanInitializer.initializeAll(AdvancedBeanInitializer.java:85) 
	 at eu.etaxonomy.cdm.persistence.dao.initializer.AdvancedBeanInitializer.initialize(AdvancedBeanInitializer.java:57) 
	 at eu.etaxonomy.cdm.persistence.dao.hibernate.common.CdmEntityDaoBase.load(CdmEntityDaoBase.java:665) 
	 at eu.etaxonomy.cdm.persistence.dao.hibernate.common.CdmGenericDaoImpl.initializeCollection(CdmGenericDaoImpl.java:868) 
	 at eu.etaxonomy.cdm.api.service.CommonServiceImpl.initializeCollection(CommonServiceImpl.java:351) 
	 at sun.reflect.GeneratedMethodAccessor2070.invoke(Unknown Source) 
	 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
	 at java.lang.reflect.Method.invoke(Method.java:497) 
	 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302) 
	 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) 
	 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) 
	 at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) 
	 at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281) 
	 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) 
	 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 
	 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208) 
	 at com.sun.proxy.$Proxy587.initializeCollection(Unknown Source) 
	 at sun.reflect.GeneratedMethodAccessor2070.invoke(Unknown Source) 
	 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
	 at java.lang.reflect.Method.invoke(Method.java:497) 
	 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302) 
	 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) 
	 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) 
	 at org.springframework.remoting.support.RemoteInvocationTraceInterceptor.invoke(RemoteInvocationTraceInterceptor.java:78) 
	 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 
	 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208) 
	 at com.sun.proxy.$Proxy929.initializeCollection(Unknown Source) 
	 at sun.reflect.GeneratedMethodAccessor2089.invoke(Unknown Source) 
	 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
	 at java.lang.reflect.Method.invoke(Method.java:497) 
	 at org.springframework.remoting.support.RemoteInvocation.invoke(RemoteInvocation.java:212) 
	 at org.springframework.remoting.support.DefaultRemoteInvocationExecutor.invoke(DefaultRemoteInvocationExecutor.java:39) 
	 at org.springframework.remoting.support.RemoteInvocationBasedExporter.invoke(RemoteInvocationBasedExporter.java:78) 
	 at org.springframework.remoting.support.RemoteInvocationBasedExporter.invokeAndCreateResult(RemoteInvocationBasedExporter.java:114) 
	 at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.handleRequest(HttpInvokerServiceExporter.java:74) 
	 at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:51) 
	 at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) 
	 at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) 
	 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969) 
	 at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:871) 
	 at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
	 at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845) 
	 at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
	 at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808) 
	 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) 
	 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316) 
	 at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126) 
	 at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90) 
	 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
	 at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114) 
	 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
	 at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:122) 
	 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
	 at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169) 
	 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
	 at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:48) 
	 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
	 at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:213) 
	 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 
	 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
	 at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:120) 
	 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
	 at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64) 
	 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 
	 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
	 at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:91) 
	 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
	 at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:53) 
	 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 
	 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) 
	 at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:213) 
	 at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176) 
	 at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) 
	 at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262) 
	 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) 
	 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121) 
	 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 
	 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) 
	 at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) 
	 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) 
	 at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) 
	 at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) 
	 at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) 
	 at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) 
	 at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) 
	 at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) 
	 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 
	 at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) 
	 at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) 
	 at org.eclipse.jetty.server.Server.handle(Server.java:497) 
	 at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) 
	 at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) 
	 at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) 
	 at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) 
	 at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) 
	 at java.lang.Thread.run(Thread.java:745) 
	 at org.springframework.remoting.support.RemoteInvocationUtils.fillInClientStackTraceIfPossible(RemoteInvocationUtils.java:45) 
	 at org.springframework.remoting.support.RemoteInvocationResult.recreate(RemoteInvocationResult.java:149) 
	 at org.springframework.remoting.support.RemoteInvocationBasedAccessor.recreateRemoteInvocationResult(RemoteInvocationBasedAccessor.java:85) 
	 at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:150) 
	 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 
	 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208) 
	 at com.sun.proxy.$Proxy47.initializeCollection(Unknown Source) 
	 at eu.etaxonomy.taxeditor.service.CachedCommonServiceImpl.initializeCollection(CachedCommonServiceImpl.java:69) 
	 at org.hibernate.collection.internal.AbstractPersistentCollection.remoteInitialize(AbstractPersistentCollection.java:1340) 
	 ... 56 more 

 ~~~ 

Back