Bug #1821

ObjectNotFoundException

Added by Harold Moyse over 9 years ago. Updated over 9 years ago.

Status:ClosedStart date:06/04/2012
Priority:NormalDue date:
Assignee:Jérôme TRUFFOT% Done:

100%

Category:Saisie des services
Target version:0.2

Description

Bonjour,

Au chargement de la page d'accueil pour certains personnels nous obtenons cette erreur :
ObjectNotFoundException
Message : No row with the given identifier exists: [org.esupportail.geisha.domain.beans.structures.Structure#SEMES]

En cherchant, nous avons détecté que cela se produit seulement pour les personnels rattachés à des structures de type S ou X (types rajoutés dans Geisha) qui ne sont semble-t-il pas prises en compte par esup-geisha qui ne s'attend pas à priori à avoir aucun résultats... Or c'est possible apparemment....

Extrait du log (voir notamment la dernière clause dans le WHERE de la requête SQL) :

2012-06-04 16:36:35,178 DEBUG [org.hibernate.SQL] -
select
structure0_.c_structure as c1_9_2_,
structure0_.lc_structure as lc3_9_2_,
structure0_.ll_structure as ll4_9_2_,
structure0_.d_ouverture as d5_9_2_,
structure0_.d_fermeture as d6_9_2_,
structure0_.c_structure_pere as c7_9_2_,
pks_structure.info_structure(structure0_.c_structure,
'C',
'C') as formula0_2_,
structure0_.c_type_structure as c2_9_2_,
structure1_.c_structure as c1_9_0_,
structure1_.lc_structure as lc3_9_0_,
structure1_.ll_structure as ll4_9_0_,
structure1_.d_ouverture as d5_9_0_,
structure1_.d_fermeture as d6_9_0_,
structure1_.c_structure_pere as c7_9_0_,
pks_structure.info_structure(structure1_.c_structure,
'C',
'C') as formula0_0_,
structure1_.c_type_structure as c2_9_0_,
structure2_.c_structure as c1_9_1_,
structure2_.lc_structure as lc3_9_1_,
structure2_.ll_structure as ll4_9_1_,
structure2_.d_ouverture as d5_9_1_,
structure2_.d_fermeture as d6_9_1_,
structure2_.c_structure_pere as c7_9_1_,
pks_structure.info_structure(structure2_.c_structure,
'C',
'C') as formula0_1_,
structure2_.c_type_structure as c2_9_1_
from
structure2 structure0_
left outer join
structure2 structure1_
on structure0_.c_structure_pere=structure1_.c_structure
left outer join
structure2 structure2_
on pks_structure.info_structure(structure0_.c_structure,
'C',
'C')=structure2_.c_structure
where
structure0_.c_structure=?
and structure0_.c_type_structure in (
'org.esupportail.geisha.domain.beans.structures.Structure', 'D', 'C', 'E', 'I', 'A'
)
2012-06-04 16:36:35,178 DEBUG [org.hibernate.jdbc.AbstractBatcher] - preparing statement
2012-06-04 16:36:35,178 DEBUG [com.mchange.v2.c3p0.stmt.GooGooStatementCache] - com.mchange.v2.c3p0.stmt.GlobalMaxOnlyStatementCache ----> CACHE HIT
2012-06-04 16:36:35,178 DEBUG [com.mchange.v2.c3p0.stmt.GooGooStatementCache] - checkoutStatement: com.mchange.v2.c3p0.stmt.GlobalMaxOnlyStatementCache stats -- total size: 50; checked out: 2; num connections: 2; num keys: 50
2012-06-04 16:36:35,178 DEBUG [org.hibernate.type.StringType] - binding 'SEMES' to parameter: 1
2012-06-04 16:36:35,179 DEBUG [org.hibernate.jdbc.AbstractBatcher] - about to open ResultSet (open ResultSets: 1, globally: 1)
2012-06-04 16:36:35,179 DEBUG [org.hibernate.loader.Loader] - processing result set
2012-06-04 16:36:35,179 DEBUG [org.hibernate.loader.Loader] - done processing result set (0 rows)
2012-06-04 16:36:35,179 DEBUG [org.hibernate.jdbc.AbstractBatcher] - about to close ResultSet (open ResultSets: 2, globally: 2)
2012-06-04 16:36:35,179 DEBUG [org.hibernate.jdbc.AbstractBatcher] - about to close PreparedStatement (open PreparedStatements: 2, globally: 2)
2012-06-04 16:36:35,179 DEBUG [org.hibernate.jdbc.AbstractBatcher] - closing statement
2012-06-04 16:36:35,179 DEBUG [com.mchange.v2.c3p0.stmt.GooGooStatementCache] - checkinStatement(): com.mchange.v2.c3p0.stmt.GlobalMaxOnlyStatementCache stats -- total size: 50; checked out: 1; num connections: 2; num keys: 50
2012-06-04 16:36:35,179 DEBUG [org.hibernate.loader.Loader] - total objects hydrated: 0
2012-06-04 16:36:35,180 DEBUG [org.hibernate.loader.Loader] - done entity load
2012-06-04 16:36:35,180 INFO [org.hibernate.event.def.DefaultLoadEventListener] - Error performing load command
org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [org.esupportail.geisha.domain.beans.structures.Structure#SEMES]
at org.hibernate.impl.SessionFactoryImpl$2.handleEntityNotFound(SessionFactoryImpl.java:409)
at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:171)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:207)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:126)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:905)
at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:873)
at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:590)
at org.hibernate.type.EntityType.resolve(EntityType.java:412)
at org.hibernate.type.ComponentType.resolve(ComponentType.java:607)
at org.hibernate.type.ComponentType.nullSafeGet(ComponentType.java:298)
at org.hibernate.loader.Loader.getKeyFromResultSet(Loader.java:1121)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:588)
at org.hibernate.loader.Loader.doQuery(Loader.java:724)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
at org.hibernate.loader.Loader.doList(Loader.java:2228)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125)
at org.hibernate.loader.Loader.list(Loader.java:2120)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:118)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1596)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:306)
at org.springframework.orm.hibernate3.HibernateTemplate$35.doInHibernate(HibernateTemplate.java:984)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
at org.springframework.orm.hibernate3.HibernateTemplate.findByCriteria(HibernateTemplate.java:974)
at org.springframework.orm.hibernate3.HibernateTemplate.findByCriteria(HibernateTemplate.java:967)
at org.esupportail.geisha.dao.GeishaDaoServiceImpl.getServicesAnnuels(GeishaDaoServiceImpl.java:498)
at org.esupportail.geisha.domain.DomainServiceImpl.getServicesAnnuels(DomainServiceImpl.java:765)
at org.esupportail.geisha.web.rest.san.SansResource.represent(SansResource.java:79)
at org.restlet.resource.Resource.getRepresentation(Resource.java:302)
at org.restlet.resource.Resource.handleGet(Resource.java:464)
at org.restlet.Finder.handle(Finder.java:353)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Router.handle(Router.java:504)
at org.esupportail.geisha.web.rest.Api.handle(Api.java:23)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Router.handle(Router.java:504)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Router.handle(Router.java:504)
at org.restlet.Filter.doHandle(Filter.java:150)
at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130)
at org.restlet.Filter.handle(Filter.java:195)
at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124)
at org.restlet.Component.handle(Component.java:673)
at org.restlet.Server.handle(Server.java:331)
at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68)
at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147)
at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881)
at org.esupportail.geisha.web.servlet.RestletServlet.service(RestletServlet.java:54)
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 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:774)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:896)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Unknown Source)
2012-06-04 16:36:35,180 DEBUG [org.hibernate.jdbc.AbstractBatcher] - about to close ResultSet (open ResultSets: 1, globally: 1)
2012-06-04 16:36:35,180 DEBUG [org.hibernate.jdbc.AbstractBatcher] - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
2012-06-04 16:36:35,180 DEBUG [org.hibernate.jdbc.AbstractBatcher] - closing statement
2012-06-04 16:36:35,180 DEBUG [com.mchange.v2.c3p0.stmt.GooGooStatementCache] - checkinStatement(): com.mchange.v2.c3p0.stmt.GlobalMaxOnlyStatementCache stats -- total size: 50; checked out: 0; num connections: 2; num keys: 50

Merci pour votre aide

History

#1 Updated by Jérôme TRUFFOT over 9 years ago

  • Category set to Saisie des services
  • Assignee set to Jérôme TRUFFOT
  • Target version set to 0.2

Bonjour,

Effectivement, je n'ai pris en compte que les types de structure dont j'avais connaissance. J'ignorais qu'on pouvait en ajouter.
Il faut que je revois ma gestion des structures pour être plus souple mais ça ne devrait pas être trop compliqué.

Cordialement,

#2 Updated by Harold Moyse over 9 years ago

Merci.
Je précise que ces 2 types structures que nous avons en plus sont de niveau_hierarchique 4 et 5...

#3 Updated by Jérôme TRUFFOT over 9 years ago

Bonne remarque. J'imagine donc que ces structures sont rattachés à des départements (niveau hiérarchique 3) ?

Au niveau des affichages, voulez-vous faire apparaître cette structure de rattachement directement en dessous de sa composante ? Avec tout le chemin "composante » département » niveau 4 » niveau 5" ? Ou afficher uniquement jusqu'au niveau département ?

Cela concerne plusieurs points :
  • dans la liste des enseignements, on affiche la composante de rattachement ou, le cas échéant, "composante » département",
  • à la saisi ou modification d'un enseignement, dans le champ "composante ou département", pour les permanents, on affiche, le cas échéant, le département de rattachement, puis la composante (cadre A), puis l'établissement (cadre B) puis "Autres" (cadre C). Dans l'arborescence de ces structures, nous filtrons les structures fermées (date de fermeture) et les structures de type 'A'.
  • dans l'édition de l'état récapitulatif (feature #1699), nous affichons la composante et le département de rattachement. Faut-il afficher cette structure de rattachement à la place du département ? Faut-il afficher le département auquel est rattachée cette structure ? Faut-il afficher composante et département + les structures de niveau 4 voir 5 le cas échéant (mais dans ce cas, avec quels labels ?) ?

#4 Updated by Harold Moyse over 9 years ago

Bonjour,

En fait sur Versailles, nos enseignements sont tous rattachés à une structure de niveau 2. On les récupère d'APOGEE dans laquelle la notion de niveau 3,4 et 5 n'existe pas.
Par contre, au niveau d'HARPEGE, le personnel peut être affecté à une structure de niveau 4 ou 5.
J'ai vu la gestionnaire.
Elle a créé, il y a plusieurs années, des structures de niveau 4 et 5, codé X et S.
Si on change le S et le X en D... le canal fonctionne.
Il sera peut être simple de s'expliquer par téléphone ( 01 39 25 78 95).
Merci d'avance.

#5 Updated by Jérôme TRUFFOT over 9 years ago

En fait, je me pose sûrement trop de questions. Il suffit sûrement que je les gère comme des départements. C'est certainement ce que fait Geisha, pour l'édition des états récapitulatif par exemple.

Je vais essayer comme ça déjà. Vous verrez bien si des affichages ne vous conviennent pas. Il sera toujours possible de faire des améliorations.

Pour info, j'ai essayé d'appeler le numéro de téléphone mais je tombe sur le répondeur d'une certaine Dominique. Je n'ai pas osé laissé de message... Si vous avez besoin, mon numéro est le 04 73 40 78 77.

#6 Updated by Jérôme TRUFFOT over 9 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

#7 Updated by Jérôme TRUFFOT over 9 years ago

  • Status changed from Resolved to Closed

Fixé dans la version 0.2.7.

Also available in: Atom PDF