Project

General

Profile

Actions

bug #6300

closed

DataIntegrityViolationException when saving a type

Added by Patrick Plitzner over 5 years ago. Updated over 5 years ago.

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

100%

Estimated time:
Severity:
normal
Found in Version:

Description

Walter:

"Hallo,

habe eine Typusangabe in den Cache gestellt, beim Speichern des Taxons dann untenstehender Fehler.

Herzlichen Gruß

Walter"

….


Saving a type designation

login : wgb

editor version : 4.4.1

server : api.cybertaxonomy.org / cybertaxonomy.org

schema version : 4.1.0.0.201607300000

os : Windows 10 10.0 amd64

java : 1.8.0_111

org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [UK_b8inp8cke189cpo47euwn0bgf]; 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.$Proxy2832.merge(Unknown Source)

                at sun.reflect.GeneratedMethodAccessor28484.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.$Proxy2916.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: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.$Proxy27.merge(Unknown Source)

                at eu.etaxonomy.taxeditor.editor.TaxonEditorInput.merge(TaxonEditorInput.java:461)

                at eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor.doSave(MultiPageTaxonEditor.java:150)

                at org.eclipse.ui.internal.SaveableHelper$2.run(SaveableHelper.java:151)

                at org.eclipse.ui.internal.SaveableHelper$5.run(SaveableHelper.java:277)

                at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)

                at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)

                at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:759)

                at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)

                at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:756)

                at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2649)

                at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:285)

                at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:264)

                at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:156)

                at org.eclipse.ui.internal.EditorManager.savePart(EditorManager.java:1399)

                at org.eclipse.ui.internal.WorkbenchPage.savePart(WorkbenchPage.java:3416)

                at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3429)

                at org.eclipse.ui.internal.handlers.SaveHandler.execute(SaveHandler.java:54)

                at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)

                at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)

                at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)

                at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)

                at org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)

                at org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:829)

                at org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:815)

                at org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:805)

                at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)

                at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)

                at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165)

                at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)

                at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)

                at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)

                at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)

                at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)

                at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

                at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)

                at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)

                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:110)

                at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)

                at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)

                at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)

                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

                at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

                at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

                at java.lang.reflect.Method.invoke(Unknown Source)

                at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)

                at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)

                at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

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)

                ... 144 more

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '997bb27e-9290-4854-be7d-9c4c370188f2' for key 'UK_b8inp8cke189cpo47euwn0bgf'

                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)

                ... 162 more
Actions #1

Updated by Andreas Müller over 5 years ago

  • Priority changed from New to Highest
  • Target version changed from Unassigned CDM tickets to Release 4.5

Maybe we can merge this ticket with a master ticket for duplicate entry issues.

Actions #2

Updated by Katja Luther over 5 years ago

das war wohl etwas zu kurz:
Ich habe bei der Type Designation nach der Specimen Suche und „New“ im Formular „General Specimen Data“ nach öffnen des Schloss-Icons in den Title Cache ein Typuszitat aus der Literatur (nur Text) geschrieben – also kein atomisiertes Specimen. Dann Finish. Dann OK. Dann Taxon Save. Danach kam es zu dem genannten Fehler, den ich aber gerade in der letzten Version der Salvador Datenbank nicht reproduzieren konnte.
Herzlichen Gruß
Walter

Actions #3

Updated by Andreas Müller over 5 years ago

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

Updated by Katja Luther over 5 years ago

  • Status changed from New to Resolved
  • Assignee changed from Katja Luther to Patrick Plitzner

I removed the bindNullSession call and now it works. Please have a look, if everything else works, too. (I tested creation of specimen in specimen view)

Actions #6

Updated by Katja Luther over 5 years ago

  • % Done changed from 0 to 50
Actions #7

Updated by Patrick Plitzner over 5 years ago

  • Status changed from Resolved to Closed
  • Assignee changed from Patrick Plitzner to Katja Luther
  • % Done changed from 50 to 100

creating a new type specimen with only a protected title cache and saving it works fine

Actions

Also available in: Atom PDF