bug #8728
openSpecimen import via BioCASE silently fails
0%
Description
ABCD Specimen import via BioCASE provider silently fails
Logged in as user with GAs: Editor
+ TAXONNODE.[CREATE,READ,UPDATE,DELETE]{Vascular plants of Greece : Bupleurum sec. P. Dimopoulos, Th. Raus, E. Bergmeier, Th. Constantinidis, G. Iatrou, S. Kokkini, A. Strid & D. Tzanoudakis, 2013}
biocase accesspoint: http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar
Filter parameters:
- Taxon Name=
Bupleurum falcatum*
select all records and import them.
The import stopps at some point with out giving any feedback, afterwards this stacktrace can be found in the log:
!ENTRY org.eclipse.core.jobs 4 0 2019-11-27 16:08:48.259 !MESSAGE This is an unexpected error. Please contact EDIT Support (EditSupport@bgbm.org) with the error trace below (click on the 'Details' button). !STACK 0 java.lang.Exception: login : editor version : 5.11.0 server : () schema version : os : Linux 5.0.0-36-generic amd64 java : 1.8.0_131 org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:724) 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.$Proxy853.importDataFromStream(Unknown Source) 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.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.$Proxy1069.importDataFromStream(Unknown Source) 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.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.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) at org.eclipse.equinox.launcher.Main.main(Main.java:1492)
Updated by Andreas Kohlbecker almost 5 years ago
this is reproducible
once this error has occurred the taxeditor has to be restarted, otherwise further import attempts seem to be blocked
Updated by Andreas Kohlbecker almost 5 years ago
- Tags set to permission
As the import works without problems with the admin
user, it seems as if this is a permission problem.
@Katja: 1. do you know the missing permission (Granted Authorities)?
@Katja: 2. The exceptions regarding the insufficient permission must not be caught completely, it is needed that this error is being propagated to the user in a human friendly form.
Updated by Andreas Kohlbecker almost 5 years ago
- Priority changed from New to Highest
- Target version changed from Unassigned CDM tickets to Release 5.12
The problem in one specific case was that the user was not permitted to update a person:
[UPDATE] not permitted for 'kurs1' on Person[uuid:43cb913c-f051-46a7-aee3-044428375806', toString:'Person#0<43cb913c-f051-46a7-aee3-044428375806>'] eu.etaxonomy.cdm.database.PermissionDeniedException: [UPDATE] not permitted for 'kurs1' on Person[uuid:43cb913c-f051-46a7-aee3-044428375806', toString:'Person#0<43cb913c-f051-46a7-aee3-044428375806>']
It seems as if this is again a problem which arises from a cache modification during the hibernate save operation.
Recently we had a very similar case, has this one been solved?
Updated by Andreas Kohlbecker almost 5 years ago
Next Problem:
[CREATE] not permitted for 'kurs1' on TaxonNode[uuid:79c3deac-ee1d-4622-91fa-746be0894161', toString:'TaxonNode#52<79c3deac-ee1d-4622-91fa-746be0894161>'] eu.etaxonomy.cdm.database.PermissionDeniedException: [CREATE] not permitted for 'kurs1' on TaxonNode[uuid:79c3deac-ee1d-4622-91fa-746be0894161', toString:'TaxonNode#52<79c3deac-ee1d-4622-91fa-746be0894161>']
The import
- two options:
- A: must only allow importing in a new classification, if the user has the general TaxonNode[CREATE] permission
- B: should grant the require TaxonNode[CRUD] permission for the root node of the new created classification
- should only allow selecting classifications as target if the user has ast least one GrantedAuthority for one TaxonNode in this classification
NOTE: copy the tasks resulting from this comment into a new ticket
Updated by Andreas Müller almost 5 years ago
Andreas Kohlbecker wrote:
The problem in one specific case was that the user was not permitted to update a person:
[UPDATE] not permitted for 'kurs1' on Person[uuid:43cb913c-f051-46a7-aee3-044428375806', toString:'Person#0<43cb913c-f051-46a7-aee3-044428375806>'] eu.etaxonomy.cdm.database.PermissionDeniedException: [UPDATE] not permitted for 'kurs1' on Person[uuid:43cb913c-f051-46a7-aee3-044428375806', toString:'Person#0<43cb913c-f051-46a7-aee3-044428375806>']It seems as if this is again a problem which arises from a cache modification during the hibernate save operation.
Recently we had a very similar case, has this one been solved?
The recent problem was a not up-to-date titleCache in E+M after a manual deduplication of persons which lead to not up-to-date titleCaches in the according teams. This has been "solved" by running the titleCache updater.
Updated by Katja Luther over 4 years ago
- Target version changed from Release 5.12 to Release 5.13
Updated by Andreas Müller over 4 years ago
- Target version changed from Release 5.13 to Release 5.14
Updated by Katja Luther over 4 years ago
- Target version changed from Release 5.14 to Release 5.15
Updated by Katja Luther over 4 years ago
- Target version changed from Release 5.15 to Release 5.18
Updated by Katja Luther over 3 years ago
- Target version changed from Release 5.18 to Release 5.19
Updated by Andreas Müller over 3 years ago
- Target version changed from Release 5.19 to Release 5.21
Updated by Andreas Müller over 3 years ago
- Target version changed from Release 5.21 to Release 5.22
Updated by Katja Luther over 3 years ago
- Target version changed from Release 5.22 to Release 5.48