Project

General

Profile

Bug #7300

Erreur 500 lors de la recherche de sous groupes

Added by Monique Desnoyer almost 4 years ago. Updated almost 4 years ago.

Status:
Closed
Priority:
Normal
Category:
Panneau utilisateurs
Start date:
01/12/2016
Due date:
% Done:

100%

Estimated time:
Navigateur:
Tous
Votre version de Silverpeas:
5.15
Système d'exploitation:
Votre base de données:
PostgreSQL

Description

Contexte: notifications via la panneau utilisateurs.

11/01/16-13:21:32,022 - ERROR : admin.EX_ERR_GET_USER_DETAILS | MODULE : admin.OrganizationController.getGroupsMatchingCriteria | Erreur lors de l'obtention des details de plusieurs utilisateurs (criteria: 'com.stratelia.webactiv.beans.admin.GroupsSearchCriteria@ee3a913e, EXCEPTION : Erreur lors de l'obtention des différents groupes d'un utilisateur
nested (Deepest) :
java.sql.SQLSyntaxErrorException: ORA-00936: expression absente

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:208)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:886)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1175)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1296)
at oracle.jdbc.driver.OracleStatement.doScrollExecuteCommon(OracleStatement.java:4721)
at oracle.jdbc.driver.OraclePreparedStatement.doScrollPstmtExecuteUpdate(OraclePreparedStatement.java:10613)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3611)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3657)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1495)
at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:342)
at com.stratelia.webactiv.beans.admin.dao.GroupDAO.getGroupsByCriteria(GroupDAO.java:87)
at com.stratelia.webactiv.beans.admin.GroupManager.getGroupsMatchingCriteria(GroupManager.java:68)
at com.stratelia.webactiv.beans.admin.Admin.searchGroups(Admin.java:6880)
at com.stratelia.webactiv.beans.admin.OrganizationController.searchGroups(OrganizationController.java:493)
at com.silverpeas.profile.web.UserGroupProfileResource.getSubGroups(UserGroupProfileResource.java:267)

History

#1

Updated by David Lesimple almost 4 years ago

  • Status changed from New to Feedback

Le nom ou le prénom de l'utilisateur contient-il une apostrophe ?

#2

Updated by Monique Desnoyer almost 4 years ago

Non, pas d'accent , on peut taper juste "ra" par exemple ou "Se" ... le problème se produit quand on fait les premières notifications et ne semble pas systématique mais il survient surtout quand on tape des lettre loin dans la liste (page 300...)

#3

Updated by David Lesimple almost 4 years ago

Pouvez-vous mettre le module Bus.jobManagerPeas au niveau trace DEBUG, refaire la manip et joindre ici le fichier traces.txt (zippé) ?

#4

Updated by Monique Desnoyer almost 4 years ago

pas d'apostrophe

#5

Updated by Monique Desnoyer almost 4 years ago

il n'existe pas, mail envoyé avec imp ecran

#6

Updated by David Lesimple almost 4 years ago

David Lesimple a écrit :

Pouvez-vous mettre le module Bus.jobManagerPeas au niveau trace DEBUG, refaire la manip et joindre ici le fichier traces.txt (zippé) ?

C'est le module BusIHM.jobManagerPeas et pas Bus.jobManagerPeas

Les copies d'écran doivent bien sur etre sauvés sous forme de fichier.
vous pouvez installer une extension comme Fireshot dans votre navigateur, cela permet de faire facilement des copies d'écran, de les annoter et de les sauver sous forme de fichier que vous pourrez joindre au ticket Redmine.

Au pire, coller votre copie d'écran dans un document Word.

#7

Updated by David Lesimple almost 4 years ago

  • % Done changed from 0 to 70

1. Sélectionner BusIHM.jobManagerPeas
2. Mettre TraceLevel au niveau 'DEBUG'
3. Reproduire le problème
4. Joindre à ce ticket le traces.txt zippé
5. Remettre BusIHM.jobManagerPeas au niveau '(Parent)'

#8

Updated by Monique Desnoyer almost 4 years ago

  • File traces 12 01 2016 14h50.zip added

voici le fichier trace apres ré-essai + mode débug

#9

Updated by David Lesimple almost 4 years ago

  • Tracker changed from Bug to Support

Bizarre, il n'y a que du niveau ERROR dans le fichier, etes-vous sur d'avoir mis en DEBUG le dit module ?

Le mieux est peut-etre que je me connecte sur votre serveur.

#10

Updated by Monique Desnoyer almost 4 years ago

  • File traces 12 01 2016 17h06.zip added

Manipulation refaite , nouveau fichier trace MAIS merci de vérifier aussi ce qu'il s'est passé vers 16h-16h30 car tout s'est bloqué sans qu'on ne puisse s'expliquer pourquoi et c'est revenu tout seul à la normal

#11

Updated by David Lesimple almost 4 years ago

Pour l'instant, il est préférable de ne pas planifier la synchro avec l'AD toutes les heures, mais une fois par nuit, étant donné qu'il y a quelques erreurs sur certains utilisateurs (il faudra les qualifier).

Pour l'erreur 500, j'ai localisé l'erreur, il est possible que cela soit lié à Oracle.
Nous allons essayer de le reproduire en local.

#12

Updated by David Lesimple almost 4 years ago

Pourrais-je avoir un accès teamviewer pour Mercredi ou Jeudi ? je voudrais faire quelques vérifications dans la base de données.

#13

Updated by David Lesimple almost 4 years ago

  • File deleted (traces 12 01 2016 14h50.zip)
#14

Updated by David Lesimple almost 4 years ago

  • File deleted (traces 12 01 2016 17h06.zip)
#15

Updated by David Lesimple almost 4 years ago

  • Tracker changed from Support to Bug
  • Subject changed from erreur 500 sur notification to erreur 500 si on utilise l'autocompletion dans un groupe qui ne contient pas de sous-groupes.
  • Description updated (diff)
  • Category changed from Notifications to Panneau utilisateurs
  • Status changed from Feedback to New
  • % Done changed from 70 to 0
  • Navigateur changed from Internet Explorer 11 to Tous
  • Votre base de données set to PostgreSQL
#16

Updated by Nicolas Eysseric almost 4 years ago

  • Subject changed from erreur 500 si on utilise l'autocompletion dans un groupe qui ne contient pas de sous-groupes. to Erreur 500 lors de la recherche de sous groupes
  • Status changed from New to Resolved
  • Assignee set to Nicolas Eysseric
  • Target version set to Version 5.15.1
  • % Done changed from 0 to 100

La requête générée qui est incorrecte est la suivante :

select distinct * from st_group where lower(st_group.name) like lower('cgth%') and  and st_group.superGroupId = 149 order by name

Cela s'explique par le fait que, lors de la recherche de sous groupes, une contrainte est ajoutée pour exclure les utilisateurs selon leurs états.
Cet état n'est pas exploité lors de la construction de la requête et génère une requête à la syntaxe incorrecte.

Cela n'a pas de sens d'ajouter un critère sur les utilisateurs puisque la recherche porte sur les sous groupes (pas sur les utilisateurs). Ce critère a donc été supprimé lors de la recherche de groupes.

A noter que la recherche de groupes de premier niveau fonctionne correctement.

#17

Updated by Yohann Chastagnier almost 4 years ago

  • Status changed from Resolved to Integration in progress...
#18

Updated by Yohann Chastagnier almost 4 years ago

  • Status changed from Integration in progress... to V6 pending

Le nombre d'utilisateurs dans un groupe est généralement présenté dans les écrans qui listent les groupes.
Selon le contexte et pour un même groupe, ce nombre peut être différent selon si certains statuts d'utilisateur sont souhaités ou pas.

Par exemple, dans les écrans d'administration, le nombre d'utilisateurs présentés pour un groupe n'exclut pas ceux dont le statut est désactivé.
En revanche, dans la fenêtre de sélection d'utilisateurs/groupes pour une notification manuelle, les utilisateurs désactivés ne sont pas comptabilisés dans le calcul du nombre d'utilisateurs dans un groupe.

La correction finalement appliquée a porté sur le traitement qui construit la requête de recherche de groupes à partir des différents critères fournis. En effet, il n'y a pas de raison pour que le critère de filtrage sur le statut d'un utilisateur ajoute une clause particulière dans cette dernière. En revanche, ce critère sera bien communiqué au service de recherche des utilisateurs du groupe afin d'appliquer ou non ce filtrage sur le statut.


Commit de merge : https://github.com/Silverpeas/Silverpeas-Core/commit/30dfa67f0e68b737a0f1f6bba2a6c7680301b27a

#19

Updated by Yohann Chastagnier almost 4 years ago

  • Status changed from V6 pending to Closed

Intégré en 5.15.1 et 6.0.

Also available in: Atom PDF