Image du projet 'Socle K-Sup' téléversée
  1. Socle K-Sup
  2. CORE-1840

Erreur quand on fait une recherche sur une fiche qui sera mise en ligne dans le futur

XMLWordImprimable

    • Icon: Bug Bug
    • Résolution: Résolu
    • Icon: Mineur Mineur
    • 6.02.27
    • 6.02.26
    • Aucune

      Pour reproduire :

      • Modifier une fiche pour y ajouter un texte bien spécifique (exemple : testkosmostestkosmos) et mettre une date de mise en ligne dans le futur.
      • Enregistrer
      • Lancer l'indexation (pas firstIndex)
      • Rechercher en front le texte saisi.
        -> Pas de retour (normal), mais erreur dans les logs :
        2016-06-07_14:11:43.096 [http-bio-8080-exec-10] ERROR com.jsbsoft.jtf.textsearch.Searcher - erreur sur l'indexer
        java.lang.NullPointerException: null
        	at org.apache.lucene.util.ReaderUtil.gatherSubReaders(ReaderUtil.java:46) ~[lucene-core-3.6.2.jar:3.6.2 1423725 - rmuir - 2012-12-18 19:45:40]
        	at org.apache.lucene.search.IndexSearcher.gatherSubReaders(IndexSearcher.java:210) ~[lucene-core-3.6.2.jar:3.6.2 1423725 - rmuir - 2012-12-18 19:45:40]
        	at org.apache.lucene.search.IndexSearcher.<init>(IndexSearcher.java:190) ~[lucene-core-3.6.2.jar:3.6.2 1423725 - rmuir - 2012-12-18 19:45:40]
        	at org.apache.lucene.search.IndexSearcher.<init>(IndexSearcher.java:115) ~[lucene-core-3.6.2.jar:3.6.2 1423725 - rmuir - 2012-12-18 19:45:40]
        	at com.jsbsoft.jtf.textsearch.Searcher.reOpen(Searcher.java:165) [core-6.02.26.jar:na]
        	at com.jsbsoft.jtf.textsearch.Searcher.testReader(Searcher.java:150) [core-6.02.26.jar:na]
        	at com.jsbsoft.jtf.textsearch.Searcher.getSearcher(Searcher.java:217) [core-6.02.26.jar:na]
        	at com.univ.utils.RechercheUtil.traiterRecherche(RechercheUtil.java:101) [core-6.02.26.jar:na]
        	at com.univ.utils.RechercheFiche.search(RechercheFiche.java:260) [core-6.02.26.jar:na]
        	at com.univ.utils.RechercheFiche.traiterRECHERCHE(RechercheFiche.java:201) [core-6.02.26.jar:na]
        	at com.univ.utils.RechercheFiche.traiterAction(RechercheFiche.java:165) [core-6.02.26.jar:na]

      En revanche, le problème apparaît seulement à la première recherche qui suit l'indexation.

      Le problème pourrait se situer dans la fonction Searcher.reOpen ci-dessous :

      private synchronized void reOpen() {
      		if (needToReOpen) {
      			try {
      				final IndexReader newReader = IndexReader.openIfChanged(indexReader);
      				if (newReader != indexReader) {
      					closeAll();
      				}
      				indexReader = newReader;
      				indexSearcher = new IndexSearcher(indexReader);
      			} catch (final Exception e) {
      				LOG.error("erreur sur l'indexer", e);
      			}
      			needToReOpen = false;
      		}
      	}

      Le booléen needToReOpen est à true alors que l'indexReader est toujours ouvert. Du coup on essaye d'en ouvrir un autre, mais lucene dit non car l'actuel est toujours ouvert. On a donc un newReader à null et un "oldReader" qu'on ferme.

            camille.lebugle Camille LEBUGLE
            charlie.camus Charlie CAMUS [X] (Inactif)
            Votes:
            2 Voter pour ce ticket
            Gérer les observateurs:
            3 Démarre l'observation de ce ticket

              Création:
              Mise à jour:
              Résolue: