Project

General

Profile

Actions

bug #6159

closed

improve distribution editor in TaxEditor

Added by Katja Luther over 7 years ago. Updated about 5 years ago.

Status:
Closed
Priority:
Highest
Assignee:
Category:
taxeditor
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
4:00 h
Severity:
normal
Found in Version:

Description

Improving the distribution editor and selection of areas used in distribution editor

we should handle the saving similar to the bulk editor. see bulk editor migration ticket (#6932)


Related issues

Related to EDIT - feature request #7235: Make available area vocabularies a database preference for TaxEditor distribution editorClosedPatrick Plitzner

Actions
Related to EDIT - bug #7236: Make available distribution status a database preference for TaxEditor distribution editorClosedKatja Luther

Actions
Related to EDIT - bug #7237: Status are not deletable in TaxEditor distribution statusClosedKatja Luther

Actions
Related to EDIT - feature request #7793: Master ticket for E+M editor issuesClosedKatja Luther

Actions
Related to EDIT - task #7854: Open issues in TaxDistributionEditor ClosedKatja Luther

Actions
Related to EDIT - task #8047: Remaining issues in TaxDistributionEditor ClosedKatja Luther

Actions
Copied to EDIT - feature request #7063: Improve the area selection wizard for distribution editorClosedKatja Luther

Actions
Copied to EDIT - feature request #7234: Make areas in TaxEditor distribution editor sortableClosedKatja Luther

Actions
Actions #1

Updated by Katja Luther over 7 years ago

improve the selection of distribution areas in preferences and fix some smaller issues in the distribution editor itself.

Actions #2

Updated by Katja Luther over 7 years ago

  • Assignee changed from Katja Luther to Andreas Müller

@AM and @Patrick
please have a look if this is ok for next week.

Actions #3

Updated by Andreas Müller over 7 years ago

  • Target version changed from Release 4.4 to Release 4.5
Actions #4

Updated by Andreas Müller about 7 years ago

  • Target version changed from Release 4.5 to Release 4.6
Actions #5

Updated by Andreas Müller about 7 years ago

  • Target version changed from Release 4.6 to Release 4.7
Actions #6

Updated by Andreas Müller almost 7 years ago

  • Target version changed from Release 4.7 to Release 4.8
Actions #7

Updated by Andreas Müller over 6 years ago

  • Target version changed from Release 4.8 to Release 4.9
Actions #8

Updated by Andreas Müller over 6 years ago

  • Target version changed from Release 4.9 to Release 4.10
Actions #9

Updated by Katja Luther over 6 years ago

  • Assignee changed from Andreas Müller to Katja Luther

Katja Luther wrote:

Improving the distribution editor and selection of areas used in distribution editor

Hallo,
Greuter und ich haben mal kurz versucht, den Distribution Editor zu benutzen, dann aber keine Änderungen damit gemacht, da ich durch die 2 Cuba Area trees sowie die Abkürzungsproblematik hier verunsichert war. Letzteres hat sich ja schon geklärt (Ticket) – das ist aber wirklich gefährlich, wenn es zu unterschiedlichen Interpretationen bei gleicher Eingabe führt.

Schon mal folgende Anmerkungen:

Größere Datenmengen machen's sehr langsam (Liste nach Auswahl Poaceae dauert Minuten, haben wir aufgegeben).

Die Aktivierung des Distribution Editors bleibt beim Benutzerwechsel erhalten – ist das auf Rechnerebene definiert? Sollte eher Nutzer- und Datenbank-spezifisch sein.

Ist die Auswahl der Reihenfolge der Areas (als Spaltenüberschriften) irgendwo konfigurierbar?

Für die Wunschliste – Eintrag der Statusabkürzung direkt im Feld, oder zumindest Listenaufruf durch klicken auf’s Feld (worauf man dann mit der Eingabe den entsprechenden Listeneintrag auswählt).

Herzlichen Gruß
Walter

Actions #10

Updated by Katja Luther over 6 years ago

the wizard for selection of areas should be improved.
while opening the wizard the vocabularies are not correctly marked if the whole vocabulary or only parts of it should be used in the distribution editor.
The wizard is quite slow.

Actions #11

Updated by Andreas Müller over 6 years ago

  • Target version changed from Release 4.10 to Release 4.11
Actions #12

Updated by Katja Luther over 6 years ago

now the details of the selected distribution are available in details view, the details of the distributions are disabled.

I would think that it is better to see the whole distribution to be sure to edit the right distribution, but it is not possible to edit the namedArea or the status in this view.

Actions #13

Updated by Katja Luther over 6 years ago

  • Status changed from New to Resolved

close this ticket and create a new one for the selection wizard problems (#7063)

Actions #14

Updated by Katja Luther over 6 years ago

  • Assignee changed from Katja Luther to Andreas Müller
Actions #15

Updated by Andreas Müller over 6 years ago

The area selection wizard works better now then before. Some minor issues:

  • Handling of triple states: if only parts of a vocabulary are selected I would expect a triple state. As the vocabulary itself is not an area, it should only show the state of the selected areas within this vocabulary, with (1) selected = all areas selescted, (2) undefined = some areas selected, (3) unselected = no area selected. I managed to get such an "undefined" state once for the Waterbody vocabulary, but could not reproduce for any other. This is different for parent nodes which are areas themselves. They must not have a triple state because they might be shown or not shown in the editor.
  • The performance of e.g. clicking on TDWG vocabulary is very bad. Probably it is not a use case to select ALL TDWG areas. We may think for a better solution. Maybe it is enough to only select the next layer (e.g. TDWG level 1) and one has to select the next level manually, but this has also drawbacks, so we have to further think about a good solution
Actions #16

Updated by Katja Luther over 6 years ago

the improvement of the area selection wizard is moved to the new ticket, so I will handle this for the next release. So I copy the last comment to the new ticket.

Actions #17

Updated by Andreas Müller over 6 years ago

The new details view is great! Some minor issues:

  • if one selects a status in the combobox the details view is not immediately shown. This is irritating as one has to leave the area first and reselect before the details view is shown. This slows down the workflow and is not intuitive.
  • Generally the question is, why the details view is not immediately shown when clicking in a cell of the table, even if no status is available yet. And also the status could be editable in the details view then in addition. I understand that this is more difficult to implement as one has to handle multiple cases (e.g. what happens if some one only clicks there -> do not create empty records, etc.), but I think it should be possible.
  • We might think about making the Media selection invisible as it is not needed for distribution data and is only irritating.
  • Is it also possible to activate the supplemental data view? I expect that people may want to add e.g. annotations to a distribution (also other views like the referencing objects view might be a possibility but not really useful here, but in future there might be views like a history view that might be interesting too)
Actions #18

Updated by Andreas Müller over 6 years ago

Actions #19

Updated by Andreas Müller over 6 years ago

Label for filter should be "Filter", not "Search"/"Suche". Also label for "Anzahl der Elemente" should be "Anzahl Taxa" (also in English probably)

Actions #20

Updated by Andreas Müller over 6 years ago

The "Verbreitungsstatus" combobox for selecting areas in the right lower corner has a strange behavior. Selecting areas seems to remove them from the table (I would expect the other way round). Also it seemed to work only for few areas. Others did not work (Maybe there was a difference between user defined areas and other vocabularies but I dind't check really).

Actions #21

Updated by Andreas Müller over 6 years ago

Can we move the filter to the top? I am not sure if this is really better, but somehow it feels more intuitive. Usually text filters are on top if they filter on columns. (not critical)

Actions #22

Updated by Andreas Müller over 6 years ago

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

After adding multiple status and also adding a reference to a status I got a duplicate entry exception while saving:

login : admin
editor version : 4.11.0.201711072346
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.e4.core.di.InjectionException: org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [_UniqueKey]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement
    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: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.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [_UniqueKey]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement
    at org.springframework.orm.hibernate5.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:164)
    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.$Proxy660.merge(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor2132.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.$Proxy1027.merge(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.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:748)
    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.$Proxy51.merge(Unknown Source)
    at eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditorInput.merge(ChecklistEditorInput.java:188)
    at eu.etaxonomy.taxeditor.editor.view.checklist.e4.ChecklistEditorE4.doSave(ChecklistEditorE4.java:664)
    at eu.etaxonomy.taxeditor.editor.view.checklist.e4.ChecklistEditorE4.save(ChecklistEditorE4.java:859)
    at eu.etaxonomy.taxeditor.workbench.SaveHandler.execute(SaveHandler.java:40)
    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)
    ... 36 more
Caused by: org.hibernate.exception.ConstraintViolationException: could not execute statement
    at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:59)
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:109)
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:95)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:207)
    at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:45)
    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2886)
    at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3386)
    at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:89)
    at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:560)
    at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:434)
    at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337)
    at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)
    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)
    ... 140 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'f8942184-7faa-4520-b784-72a8a7172871' for key '_UniqueKey'
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
    at com.mysql.jdbc.Util.getInstance(Util.java:387)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:932)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3878)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3814)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2478)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2625)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2551)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861)
    at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2073)
    at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2009)
    at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5094)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1994)
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:384)
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:204)
    ... 158 more
Actions #23

Updated by Katja Luther about 6 years ago

  • Description updated (diff)
  • Status changed from Feedback to In Progress
Actions #24

Updated by Katja Luther about 6 years ago

  • Target version changed from Release 4.11 to Release 4.13
Actions #25

Updated by Andreas Müller about 6 years ago

Actions #26

Updated by Andreas Müller about 6 years ago

  • Related to feature request #7235: Make available area vocabularies a database preference for TaxEditor distribution editor added
Actions #27

Updated by Andreas Müller about 6 years ago

  • Related to bug #7236: Make available distribution status a database preference for TaxEditor distribution editor added
Actions #28

Updated by Andreas Müller about 6 years ago

  • Related to bug #7237: Status are not deletable in TaxEditor distribution status added
Actions #29

Updated by Katja Luther about 6 years ago

save only the changed taxa is implemented with Revision 7e2465ad

Actions #30

Updated by Katja Luther about 6 years ago

  • Target version changed from Release 4.13 to Release 5.0
  • % Done changed from 0 to 50
Actions #31

Updated by Andreas Müller almost 6 years ago

  • Target version changed from Release 5.0 to Release 5.1
Actions #32

Updated by Katja Luther over 5 years ago

  • Target version changed from Release 5.1 to Release 5.2
Actions #33

Updated by Andreas Müller over 5 years ago

  • Target version changed from Release 5.2 to Release 5.3
Actions #34

Updated by Katja Luther over 5 years ago

  • Target version changed from Release 5.3 to Release 5.4
Actions #35

Updated by Andreas Müller over 5 years ago

Actions #36

Updated by Andreas Müller over 5 years ago

  • Status changed from In Progress to Resolved
  • Assignee changed from Katja Luther to Andreas Müller
  • % Done changed from 50 to 70

Setting this to resolved to do review. Open remaining issues ticket if necessary. Distribution will go online with this release.

Actions #37

Updated by Andreas Müller over 5 years ago

  • Related to task #7854: Open issues in TaxDistributionEditor added
Actions #38

Updated by Andreas Müller about 5 years ago

  • Related to task #8047: Remaining issues in TaxDistributionEditor added
Actions #39

Updated by Andreas Müller about 5 years ago

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

I moved performance check for large datasets to #8047.

All other issues seem to be fixed or irrelevant since DistrEditor was reimplemented in #7854 with NAT tables

Actions #40

Updated by Andreas Müller about 5 years ago

  • % Done changed from 70 to 100
Actions

Also available in: Atom PDF