Bug #3018

CQP, restore CQL error messages

Ajouté par Matthieu Decorde il y a plus de 4 ans. Mis à jour il y a plus d'un an.

Statut:Closed Début:09/02/2021
Priorité:Urgent Echéance:
Assigné à:- % réalisé:

100%

Catégorie:Corpus Temps passé: -
Version cible:TXM 0.8.2

Description

fr - slh 09/02/2021

Depuis TXM 0.8.1, on a perdu en finesse de messages de diagnostic des problèmes courants en CQL.
En cas de problème, les messages d'erreurs dans la console incluent une stacktrace brute et une stacktrace synthètique, comme ci-dessous (cas A et cas B, je n'ai pas analysé tous les cas).

En fait, les stacktraces ne sont pas utiles à l'utilisateur et je me demande si elles sont utiles aux développeurs dans la mesure où il s'agit d'erreurs de syntaxe (pas du logiciel).

Voici ce qu'il faut a minima afficher pour chacun de ces cas :

- cas A :
Concordance de <#[^0-9]#> dans le corpus CORPUSDEDEVELOPPEMENTTXT...
  • Erreur interne liée à la requête CQL, abandon de la commande.
- cas B :
Concordance de <[^0-9> dans le corpus CORPUSDEDEVELOPPEMENTTXT...
  • Erreur de syntaxe d'expression régulière, abandon de la commande.

Si on pouvait faire plus précis et exhaustif, ce serait mieux. Il faut généraliser à tous les cas d'erreur retournés par CQP/CQi.

Cas A

Concordance de <#[^0-9]#> dans le corpus CORPUSDEDEVELOPPEMENTTXT...
org.txm.searchengine.cqp.serverException.CqiClErrorInternal:
    at org.txm.searchengine.cqp.MemCqiClient.throwExceptionFromCqi(MemCqiClient.java:165)
    at org.txm.searchengine.cqp.MemCqiClient.throwExceptionFromCqi(MemCqiClient.java:67)
    at org.txm.searchengine.cqp.MemCqiClient.cqpQuery(MemCqiClient.java:409)
    at org.txm.searchengine.cqp.corpus.CQPCorpus.query(CQPCorpus.java:1360)
    at org.txm.searchengine.cqp.CQPSearchEngine.query(CQPSearchEngine.java:415)
    at org.txm.concordance.core.functions.Concordance._compute(Concordance.java:319)
    at org.txm.core.results.TXMResult.compute(TXMResult.java:2441)
    at org.txm.core.results.TXMResult.compute(TXMResult.java:2327)
    at org.txm.rcp.editors.TXMEditor$4.run(TXMEditor.java:977)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
org.txm.searchengine.cqp.clientExceptions.CqiClientException: org.txm.searchengine.cqp.serverException.CqiClErrorInternal:
    at org.txm.searchengine.cqp.corpus.CQPCorpus.query(CQPCorpus.java:1370)
    at org.txm.searchengine.cqp.CQPSearchEngine.query(CQPSearchEngine.java:415)
    at org.txm.concordance.core.functions.Concordance._compute(Concordance.java:319)
    at org.txm.core.results.TXMResult.compute(TXMResult.java:2441)
    at org.txm.core.results.TXMResult.compute(TXMResult.java:2327)
    at org.txm.rcp.editors.TXMEditor$4.run(TXMEditor.java:977)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
Caused by: org.txm.searchengine.cqp.serverException.CqiClErrorInternal:
    at org.txm.searchengine.cqp.MemCqiClient.throwExceptionFromCqi(MemCqiClient.java:165)
    at org.txm.searchengine.cqp.MemCqiClient.throwExceptionFromCqi(MemCqiClient.java:67)
    at org.txm.searchengine.cqp.MemCqiClient.cqpQuery(MemCqiClient.java:409)
    at org.txm.searchengine.cqp.corpus.CQPCorpus.query(CQPCorpus.java:1360)
    ... 6 more
TXMResult.compute(): Exception occurs during computing: org.txm.searchengine.cqp.clientExceptions.CqiClientException: org.txm.searchengine.cqp.serverException.CqiClErrorInternal: .
Stacktrace:
[1]   org.txm.core.results.TXMResult.compute TXMResult.java, 2556
[2]   org.txm.core.results.TXMResult.compute TXMResult.java, 2327
[3]  org.txm.rcp.editors.TXMEditor$4.    run TXMEditor.java, 977

Cas B

Concordance de <[^0-9> dans le corpus P1S8...
org.txm.searchengine.cqp.serverException.CqiClErrorRegex:
    at org.txm.searchengine.cqp.MemCqiClient.throwExceptionFromCqi(MemCqiClient.java:156)
    at org.txm.searchengine.cqp.MemCqiClient.throwExceptionFromCqi(MemCqiClient.java:67)
...
    at org.txm.searchengine.cqp.MemCqiClient.cqpQuery(MemCqiClient.java:409)
    at org.txm.searchengine.cqp.corpus.CQPCorpus.query(CQPCorpus.java:1435)
    ... 6 more
TXMResult.compute(): Exception occurs during computing: org.txm.searchengine.cqp.clientExceptions.CqiClientException: org.txm.searchengine.cqp.serverException.CqiClErrorRegex: .
Stacktrace:
[1]   org.txm.core.results.TXMResult.compute TXMResult.java, 2554
[2]   org.txm.core.results.TXMResult.compute TXMResult.java, 2326
[3]  org.txm.rcp.editors.TXMEditor$4.    run TXMEditor.java, 979

Solution

- remove the unnecessary full stacktraces
- catch CQP error messages when Concordance.compute() fails
- catch CQP error messages when ConcordanceEditor.updateEditorFromResult() and highlight the CQL query field

Historique

#1 Mis à jour par Matthieu Decorde il y a plus de 4 ans

  • Priorité changé de Normal à Urgent

#2 Mis à jour par Matthieu Decorde il y a plus de 4 ans

  • Description mis à jour (diff)
  • % réalisé changé de 0 à 80

#3 Mis à jour par Sebastien Jacquot il y a plus d'un an

  • % réalisé changé de 80 à 100

#4 Mis à jour par Sebastien Jacquot il y a plus d'un an

  • Statut changé de New à Closed

Formats disponibles : Atom PDF