AnsweredAssumed Answered

Problemas con nodeRef ¿inexistentes?

Question asked by ditmgl on May 28, 2009
Latest reply on May 28, 2009 by ditmgl
Hola tengo un problema con los dichosos nodeRef, y es que intento actualizar las propiedades de un archivo para lo que utilizo el nodeRef. El caso es que obtengo el nodeRef y al actualizar, salta una excepción de que el nodeRef no es valido.

Sin embargo, al comprobar el nodeRef desde el alfresco en las propiedades del archivo, me da el mismo nodeRef que antes insistia en que era erroneo.

Ahora un poco de codigo:

La funcion que uso para obtener el nodeRef es (NOTA: esta funcion es genial para localizar el nodeRef de archivos):

   private NodeRef getDocNoderef(){

      Store store = new Store(Constants.WORKSPACE_STORE, "SpacesStore");
      String queryString = "PATH:\"" + dir + "/*\"";
      queryString = queryString + " AND @cm\\:name:\"" + name + "\"";   
      
      Query query = new Query(Constants.QUERY_LANG_LUCENE,queryString);
      RepositoryServiceSoapBindingStub repositoryService =WebServiceFactory.getRepositoryService();
      NodeRef nodeRef = null;
      
      QueryResult queryResult;
      try {
         queryResult = repositoryService.query(store, query, false);
         ResultSet resultSet = queryResult.getResultSet();
         ResultSetRow[] rows = resultSet.getRows();

         if (rows != null) {
         nodeRef = new NodeRef("workspace://SpacesStore/" + rows[0].getNode().getId());
         } //end if   
      } catch (RepositoryFault e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      } catch (RemoteException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
   }

Y mas tarde uso el nodeRef en (node es el mismo nodeRef que se obtiene en la funcion anterior:

   public static <T> void setNodeAspect(NodeRef node, NodeService nodeService,T t) {
      AlfrescoAspectProperty
      aspectProperty=t.getClass().getAnnotation(AlfrescoAspectProperty.class);
      String nodeURI=aspectProperty.url();
      String aspectName=aspectProperty.aspect();
      nodeService.addAspect( node, QName.createQName(nodeURI,aspectName),   convertToAlfrescoMap(getMap(t), nodeURI));
   }

Y me da el siguiente error (cuando le da la gana, se puede decir que da de forma aleatoria, a veces si y otras no. No encuentro el motivo ya que a veces falla con el mismo archivo bajo las mismas condiciones y otras veces funciona):

org.alfresco.service.cmr.repository.InvalidNodeRefException: Node does not exist: workspace://SpacesStore/cb4f075f-f574-4a30-9308-21bcc7a44610

Un saludo. :twisted:

Outcomes