Problemas con nodeRef ¿inexistentes?

cancel
Showing results for 
Search instead for 
Did you mean: 
ditmgl
Member II

Problemas con nodeRef ¿inexistentes?

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:
1 Reply
ditmgl
Member II

Re: Problemas con nodeRef ¿inexistentes?

Perdon por postear dos veces pero asi no sobrecargo el post anterior. Pregunta:

¿Hay que "cerrar" o resetear el repositoryService paqre que funcione correctamente?

De alguna forma (y sin cambiar el código) el error anterior no esta saliendo (no os preocupeis, volvera) y salta otro distinto en otra parte. De alguna forma creo que el repositoryService esta implicado de alguna forma en los sitios donde da fallo y me preguntaba si hay que reinicializarlo de alguna forma para usarlo correctamente.

Un saludo.