Project

General

Profile

bug #6159

improve distribution editor in TaxEditor

Added by Katja Luther about 2 years ago. Updated about 2 months ago.

Status:
Resolved
Priority:
Highest
Category:
taxeditor
Target version:
Start date:
10/24/2016
Due date:
% Done:

70%

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 editor Resolved 02/01/2018
Related to Edit - bug #7236: Make available distribution status a database preference for TaxEditor distribution editor Feedback 02/01/2018
Related to Edit - bug #7237: Status are not deletable in TaxEditor distribution status Closed 02/01/2018
Related to Edit - feature request #7793: Master ticket for E+M editor issues Feedback 09/27/2018
Related to Edit - task #7854: Open issues in TaxDistributionEditor In Progress 10/23/2018
Copied to Edit - feature request #7063: improve the area selection wizard for distribution editor Feedback 11/07/2017
Copied to Edit - feature request #7234: Make areas in TaxEditor distribution editor sortable Closed 02/01/2018

Associated revisions

Revision 8407c42c (diff)
Added by Katja Luther about 2 years ago

ref #6159: fix that some column show no data

Revision 9a1539bb (diff)
Added by Katja Luther about 1 year ago

ref #6159: details of selected distr are shown for distr. editor

Revision 8e68b46a (diff)
Added by Katja Luther about 1 year ago

ref #6159: disable descriptionElementDetails for distribution editor

Revision b78937cd (diff)
Added by Katja Luther about 1 year ago

ref #6159: fix disabling of distribution details

Revision c2578872 (diff)
Added by Katja Luther about 1 year ago

ref #6159: smaller changes in distribution editor

Revision 7e2465ad (diff)
Added by Katja Luther 12 months ago

fix potential multiple representation exceptions in distribution editor, session dispose did not work

Revision e10f18ed (diff)
Added by Katja Luther about 2 months ago

ref #6159:dirty flag only if status has changed in distribution editor

History

#1 Updated by Katja Luther about 2 years ago

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

#2 Updated by Katja Luther about 2 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.

#3 Updated by Andreas Müller about 2 years ago

  • Target version changed from Release 4.4 to Release 4.5

#4 Updated by Andreas Müller almost 2 years ago

  • Target version changed from Release 4.5 to Release 4.6

#5 Updated by Andreas Müller almost 2 years ago

  • Target version changed from Release 4.6 to Release 4.7

#6 Updated by Andreas Müller over 1 year ago

  • Target version changed from Release 4.7 to Release 4.8

#7 Updated by Andreas Müller over 1 year ago

  • Target version changed from Release 4.8 to Release 4.9

#8 Updated by Andreas Müller over 1 year ago

  • Target version changed from Release 4.9 to Release 4.10

#9 Updated by Katja Luther over 1 year 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

#10 Updated by Katja Luther over 1 year 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.

#11 Updated by Andreas Müller about 1 year ago

  • Target version changed from Release 4.10 to Release 4.11

#12 Updated by Katja Luther about 1 year 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.

#13 Updated by Katja Luther about 1 year ago

  • Status changed from New to Resolved

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

#14 Updated by Katja Luther about 1 year ago

  • Assignee changed from Katja Luther to Andreas Müller

#15 Updated by Andreas Müller about 1 year 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

#16 Updated by Katja Luther about 1 year 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.

#17 Updated by Andreas Müller about 1 year 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 leaf 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)

#18 Updated by Andreas Müller about 1 year ago

#19 Updated by Andreas Müller about 1 year ago

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

#20 Updated by Andreas Müller about 1 year 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).

#21 Updated by Andreas Müller about 1 year 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)

#22 Updated by Andreas Müller about 1 year 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

#23 Updated by Katja Luther 12 months ago

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

#24 Updated by Katja Luther 12 months ago

  • Target version changed from Release 4.11 to Release 4.13

#25 Updated by Andreas Müller 11 months ago

#26 Updated by Andreas Müller 11 months ago

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

#27 Updated by Andreas Müller 11 months ago

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

#28 Updated by Andreas Müller 11 months ago

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

#29 Updated by Katja Luther 10 months ago

save only the changed taxa is implemented with Revision 7e2465ad

#30 Updated by Katja Luther 10 months ago

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

#31 Updated by Andreas Müller 7 months ago

  • Target version changed from Release 5.0 to Release 5.1

#32 Updated by Katja Luther 6 months ago

  • Target version changed from Release 5.1 to Release 5.2

#33 Updated by Andreas Müller 4 months ago

  • Target version changed from Release 5.2 to Release 5.3

#34 Updated by Katja Luther 3 months ago

  • Target version changed from Release 5.3 to Release 5.4

#35 Updated by Andreas Müller about 2 months ago

#36 Updated by Andreas Müller about 2 months 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.

#37 Updated by Andreas Müller about 2 months ago

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

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 40 MB)