Project

General

Profile

bug #8315

Parsing existing references with inReferences changes the inReference

Added by Katja Luther 27 days ago. Updated 19 days ago.

Status:
Closed
Priority:
Highest
Assignee:
Category:
taxeditor
Target version:
Start date:
05/29/2019
Due date:
% Done:

100%

Severity:
normal
Found in Version:
Tags:

Description

mail Mareike Liese:

Hallo,
leider kann ich in der Datenbank nichts speichern.

Ich hab über die Art auf Enter geklickt, und anschließend aus einer Excel Tabelle das Synonym kopiert und eingefügt. Beim speichern kommt dann diese Meldung.

Freundliche Grüße
Mareike Liese

login : m.liese
editor version : 5.7.1
server : api.cybertaxonomy.org (cybertaxonomy.org) / caryophyllales_spp
schema version : 5.5.0.0.20190221
os : Windows 7 6.1 amd64
java : 1.8.0_121
org.eclipse.e4.core.di.InjectionException: org.springframework.orm.hibernate5.HibernateSystemException: [UPDATE] not permitted for 'm.liese' on Reference[uuid:47edf58d-cb47-4c61-b2f6-2a779ca842d5', toString:'Reference [type=Article, id= 26293, uuid=47edf58d-cb47-4c61-b2f6-2a779ca842d5]']; nested exception is eu.etaxonomy.cdm.database.PermissionDeniedException: [UPDATE] not permitted for 'm.liese' on Reference[uuid:47edf58d-cb47-4c61-b2f6-2a779ca842d5', toString:'Reference [type=Article, id= 26293, uuid=47edf58d-cb47-4c61-b2f6-2a779ca842d5]']
 at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:65)
 at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:282)
 at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:247)
 at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:90)
 at org.eclipse.e4.ui.internal.workbench.PartServiceSaveHandler.save(PartServiceSaveHandler.java:57)
 at org.eclipse.ui.internal.WorkbenchWindow$7.save(WorkbenchWindow.java:594)
 at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.savePart(PartServiceImpl.java:1390)
 at eu.etaxonomy.taxeditor.workbench.SaveHandler.execute(SaveHandler.java:36)
 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.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
 at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:282)
 at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:264)
 at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
 at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:152)
 at org.eclipse.core.commands.Command.executeWithChecks(Command.java:494)
 at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:488)
 at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)
 at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:433)
 at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.handleWidgetSelection(AbstractContributionItem.java:454)
 at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem$3.handleEvent(AbstractContributionItem.java:482)
 at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
 at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4418)
 at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
 at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4236)
 at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3824)
 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: org.springframework.orm.hibernate5.HibernateSystemException: [UPDATE] not permitted for 'm.liese' on Reference[uuid:47edf58d-cb47-4c61-b2f6-2a779ca842d5', toString:'Reference [type=Article, id= 26293, uuid=47edf58d-cb47-4c61-b2f6-2a779ca842d5]']; nested exception is eu.etaxonomy.cdm.database.PermissionDeniedException: [UPDATE] not permitted for 'm.liese' on Reference[uuid:47edf58d-cb47-4c61-b2f6-2a779ca842d5', toString:'Reference [type=Article, id= 26293, uuid=47edf58d-cb47-4c61-b2f6-2a779ca842d5]']
 at org.springframework.orm.hibernate5.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:219)
 at org.springframework.orm.hibernate5.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:741)
 at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:589)
 at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761)
 at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730)
 at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:485)
 at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:291)
 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.$Proxy1750.merge(Unknown Source)
 at sun.reflect.GeneratedMethodAccessor20159.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498)
 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.$Proxy1849.merge(Unknown Source)
 at sun.reflect.GeneratedMethodAccessor41454.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498)
 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.$Proxy48.merge(Unknown Source)
 at eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4.merge(TaxonEditorInputE4.java:428)
 at eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4.save(TaxonNameEditorE4.java:409)
 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.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
 ... 48 more
Caused by: eu.etaxonomy.cdm.database.PermissionDeniedException: [UPDATE] not permitted for 'm.liese' on Reference[uuid:47edf58d-cb47-4c61-b2f6-2a779ca842d5', toString:'Reference [type=Article, id= 26293, uuid=47edf58d-cb47-4c61-b2f6-2a779ca842d5]']
 at eu.etaxonomy.cdm.persistence.hibernate.CdmSecurityHibernateInterceptor.checkPermissions(CdmSecurityHibernateInterceptor.java:207)
 at eu.etaxonomy.cdm.persistence.hibernate.CdmSecurityHibernateInterceptor.onFlushDirty(CdmSecurityHibernateInterceptor.java:129)
 at org.hibernate.event.internal.DefaultFlushEntityEventListener.invokeInterceptor(DefaultFlushEntityEventListener.java:348)
 at org.hibernate.event.internal.DefaultFlushEntityEventListener.handleInterception(DefaultFlushEntityEventListener.java:325)
 at org.hibernate.event.internal.DefaultFlushEntityEventListener.scheduleUpdate(DefaultFlushEntityEventListener.java:276)
 at org.hibernate.event.internal.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:143)
 at org.hibernate.event.internal.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:216)
 at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:85)
 at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:38)
 at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1282)
 at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:465)
 at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:2963)
 at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2339)
 at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:485)
 at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:147)
 at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$100(JdbcResourceLocalTransactionCoordinatorImpl.java:38)
 at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:231)
 at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:65)
 at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:581)
 ... 149 more

Associated revisions

Revision c9d22df2 (diff)
Added by Katja Luther 27 days ago

fix #8315: fix Parser in TaxEditor to avoid inReference change of existing references

Revision 34965c7d (diff)
Added by Katja Luther 20 days ago

fix #8315: fix Parser in TaxEditor to avoid inReference change of existing references

History

#1 Updated by Katja Luther 27 days ago

This problem appears because the parser checks whether the inreference already exists in DB and when one or more references with the same titleCache exist the inReference is set with this reference. But if there are more than one matching references for the inReference the reference is changed, but the user does not have the rights to change references.

The solution is to skip the inReference check because if the reference already exist, the inReference exists as well.

#2 Updated by Katja Luther 27 days ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 50

#3 Updated by Andreas Müller 26 days ago

  • Assignee changed from Katja Luther to Andreas Müller

Should I review?

#4 Updated by Katja Luther 26 days ago

please review

#5 Updated by Andreas Müller 21 days ago

Think about including into HFX for 5.7

#6 Updated by Andreas Müller 20 days ago

  • Status changed from Resolved to Feedback
  • Assignee changed from Andreas Müller to Katja Luther

Hmm, difficult to test, some first tests worked fine. I think we can close it and cherry pick + change version.

#7 Updated by Katja Luther 20 days ago

  • Status changed from Feedback to Resolved

Applied in changeset taxeditor|34965c7d9a020910d8a3e36ed3299fb05936f47b.

nach hotfix/5.7.3 gecherry-picked

#8 Updated by Katja Luther 20 days ago

  • Target version changed from Release 5.8 to Release 5.7

#9 Updated by Andreas Müller 19 days ago

  • Status changed from Resolved to Closed
  • Target version changed from Release 5.7 to Release 5.8
  • % Done changed from 50 to 100

#10 Updated by Andreas Müller 19 days ago

  • Target version changed from Release 5.8 to Release 5.7

moved accidentaly back to 5.8

#11 Updated by Andreas Müller 19 days ago

  • Tags set to parser

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 40 MB)