Bonjour,

Voilà, j'ai une méthode de suppression qui existe déjà et est utilisée sans problème.

J'appelle cette méthode dans un nouveau bout de code pour une autre fonctionnalité et là j'ai une erreur qui apparaît. La suppression de mon élément ne se fait pas.

Erreur dans la trace de l'appli

Code : Sélectionner tout - Visualiser dans une fenêtre à part
HibernateWrapException:  La version de l'élément en cours de modification est dépassée. Veuillez fermer l'éditeur en cours d'utilisation et renouveller l'opération.
et erreur sur jboss

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
2014-08-06 11:08:05,049 INFO  [STDOUT] (http-DV02%2F10.194.5.18-8080-1) 11:08:05,048  WARN RemoteInvocationTraceInterceptor:80 - Processing of HttpInvokerServiceExporter remote call resulted in fatal exception: fr.gesdesdep.application.business.entity.conception.fr.sihpic.remboursements.etatsFrais.IEtatFraisManager.deleteEtatFrais
com.compuware.alturadev.entity.dao.exception.ConcurrencyFailureException: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [fr.gesdesdep.application.business.entity.conception.fr.sihpic.remboursements.etatsFrais.internals_etatsFrais.EtatFrais#90c3a748ffc205126a306a30fadf8fd9]
	at com.compuware.alturadev.hibernate.exception.ExceptionConverter.convert(ExceptionConverter.java:103)
	at fr.gesdesdep.application.business.entity.conception.fr.sihpic.remboursements.etatsFrais.internals_etatsFrais.dao.EtatFraisDaoImplHibernate.delete(EtatFraisDaoImplHibernate.java:227)
	at fr.gesdesdep.application.business.entity.conception.fr.sihpic.remboursements.etatsFrais.internals_etatsFrais.EtatFraisManager.deleteEtatFrais(EtatFraisManager.java:255)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:618)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
	at org.springframework.remoting.support.RemoteInvocationTraceInterceptor.invoke(RemoteInvocationTraceInterceptor.java:70)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at $Proxy440.deleteEtatFrais(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:618)
	at org.springframework.remoting.support.RemoteInvocation.invoke(RemoteInvocation.java:205)
	at org.springframework.remoting.support.DefaultRemoteInvocationExecutor.invoke(DefaultRemoteInvocationExecutor.java:38)
	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:49)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at gdeppres.application.presentation.filters.SetCharacterEncodingFilterGdeppresWeb.doFilter(SetCharacterEncodingFilterGdeppresWeb.java:140)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:810)
Caused by: 
org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [fr.gesdesdep.application.business.entity.conception.fr.sihpic.remboursements.etatsFrais.internals_etatsFrais.EtatFrais#90c3a748ffc205126a306a30fadf8fd9]
	at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1680)


Voici le code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
private void desintegreNdFNR(INoteFraisRetenue notefraisret) {
		if (etatFraisDest != null) {
			etatFraisDest = etatFraisManager.retirerNote0aEtatFrais(etatFraisDest, notefraisret);
			etatFraisManager.saveEtatFrais(etatFraisDest);
			// Suppression de l'état de Frais
			List<INoteFraisRetenue> listeNFRestante = etatFraisDest.getNoteFraisRetenue();
			// Si il n'y a plus de note de frais dans l'état de frais
			// (la liste est vide) on le supprime
			if (listeNFRestante == null) {
				etatFraisManager.deleteEtatFrais(etatFraisDest);
			}
La méthode qui pète est deleteEtatFrais.