On Mon, 21 Feb 2011 11:05:23 +0100 Eric Chatellier <chatellier@codelutin.com> wrote:
Bonjour,
La reindexation ne fonctionne pas et se termine par une NPE : ... Caused by: java.lang.NullPointerException at org.nuiton.wikitty.storage.solr.SolrUtil.copySolrDocument(SolrUtil.java:220) at org.nuiton.wikitty.storage.solr.SolrUtil.copySolrDocument(SolrUtil.java:271) at org.nuiton.wikitty.storage.solr.WikittySearchEngineSolr.addTreeIndexField(WikittySearchEngineSolr.java:574) at org.nuiton.wikitty.storage.solr.WikittySearchEngineSolr.store(WikittySearchEngineSolr.java:320) ... 18 more
J'ai regardé vite fait le code, mais je ne sais pas si le code peut fonctionner en gerant cette valeur null, ou si c'est une erreur.
En fait, dans notre cas, on reindexe tout. Et tout ne peut pas passer dans une seule transaction. Donc on fait des commits regulier. Avec seulement une partie des données. Il y a donc plusieurs probleme qu'il faut regler: 1) on sauve un TreeNode mais tous ses parents ne sont pas encore dans SolR 2) on sauve un TreeNode mais les attachments ne sont pas encore dans SolR Pour le 1 normalement, ce n'est pas un problème, à un moment donné, on va enregistrer les parents manquant et l'indexation des fils se fera a ce moment la. Pour le 2 c plus compliqué, il faut lors de la sauvegarde du TreeNode passer sous silence les attachments manquant. Mais dès qu'un de ces attachments se fait indexer il faut aussi ajouter les champs d'indexation d'arbre. Il faut donc rechercher si l'objet est un attachment pour un ou plusieurs TreeNode. Ce qui n'est pas fait actuellement :(. Je corrige et je commit. Avec cette base de données, on a un bon jeu de test de migration, Mais ce serait bien de faire un test unitaire tout de meme, je vais ajouter un ticket car je n'ai pas le temps de faire le test :( -- Benjamin POUSSIN -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com http://www.codelutin.com