Project

General

Profile

bug #6300

DataIntegrityViolationException when saving a type

Added by Patrick Plitzner almost 2 years ago. Updated almost 2 years ago.

Status:
Closed
Priority:
Highest
Assignee:
Category:
taxeditor
Target version:
Start date:
12/22/2016
Due date:
% Done:

100%

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

Associated revisions

Revision e904eb89 (diff)
Added by Katja Luther almost 2 years ago

fix #6300: the newDerivedUnitWizard should not have a session

History

#1 Updated by Andreas Müller almost 2 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.

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

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

  • Target version changed from Release 4.5 to Release 4.6

#5 Updated by Katja Luther almost 2 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)

#6 Updated by Katja Luther almost 2 years ago

  • % Done changed from 0 to 50

#7 Updated by Patrick Plitzner almost 2 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

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 40 MB)