Forum Ametys

Forum de la communauté Ametys

You are not logged in.

#1 10/04/2015 12:43:58

David Cartier-Michaud
Guest
Registered: 28/07/2014
Posts: 4

Problème sur la recherche des contenus génère une exception

Une partie de l'exception générée est : Caused by: javax.jcr.PathNotFoundException: ametys:lastModified
Cette erreur est due à un problème sur des contenus que ne se sont pas créés correctement et pour lesquels le champ ametys:lastModified est manquant.

On peut donc dans un premier temps rechercher les contenus qui posent problème grâce à la fonction "Exécuter une requête" (loupe avec ?) disponible dans "Repository JCR" auquel vous pouvez accéder depuis l'espace d'administration (_admin)
On va recherche les contenus en erreur en faisant la requête suivante :

//element(*, ametys:defaultWebContent)[not(@ametys:lastModified)]

Si vous trouvez effectivement des contenus en erreur, il vous faudra exécuter le script JCR suivant depuis la console JCR.

Au préalable, n'oubliez pas de sauvegarder votre repository.
Et notez bien que ce script supprimera complètement les contenus en erreur.

Script JCR:

var qm = session.getWorkspace().getQueryManager();
var query = qm.createQuery("//element(*, ametys:defaultWebContent)[not(@ametys:lastModified)]", javax.jcr.query.Query.XPATH);
var nodes = query.execute().getNodes();

var i = 0;

while (nodes.hasNext())
{
  var node = nodes.next();
  
  var workflowId = node.getProperty("ametys-internal:workflowRef").getValue().getString();
  node.remove();
  
  var workflowNode = session.getNodeByUUID(workflowId);
  workflowNode.remove();
  
  i++;
}

session.save();
println(i + " contenus en erreur");

Last edited by David Cartier-Michaud (10/04/2015 13:05:15)


David Cartier-Michaud
Ametys Expert

Offline

Board footer

Powered by FluxBB