cancel
Showing results for 
Search instead for 
Did you mean: 

Alfresco nodeRef ids are changing !

zomurn
Champ in-the-making
Champ in-the-making
Hello,

I'am confronting to a big problem : the nodeRef.getId() is changing (based on PROP_UUID)
Indeed, in logs, when I import a document, I see for example :

11:54:17,549 User:fbonnot DEBUG [action.executer.MscImporterEmailFilingProcessor] Filed email into folder (/Alfresco/xxx/Emails) messageNodeRef=workspace://SpacesStore/9834592e-4070-49f2-976b-b177cb5e1bbe

Moreover, I store in database, this uuid so as to be able to keep track of the document : 9834592e-4070-49f2-976b-b177cb5e1bbe

But when I do a search noderef through node browser in alfresco like : workspace://SpacesStore/9834592e-4070-49f2-976b-b177cb5e1bbe

An comprehensive error occur like :

09:38:41,371 User:admin DEBUG [repo.transaction.RetryingTransactionHelper]
Transaction commit failed:
   Thread: http-8080-1
   Txn:    UserTransaction[object=org.alfresco.util.transaction.SpringAwareUserTransaction@50c9e451, status=0]
   Iteration: 0
   Exception follows:
org.alfresco.error.AlfrescoRuntimeException: Node workspace://SpacesStore/9834592e-4070-49f2-976b-b177cb5e1bbe does not exist.
   at org.alfresco.web.bean.admin.AdminNodeBrowseBean$1.execute(AdminNodeBrowseBean.java:702)
   at org.alfresco.web.bean.admin.AdminNodeBrowseBean$1.execute(AdminNodeBrowseBean.java:693)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:322)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:248)
   at org.alfresco.web.bean.admin.AdminNodeBrowseBean.submitSearch(AdminNodeBrowseBean.java:722)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:132)
   at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:61)
   at javax.faces.component.UICommand.broadcast(UICommand.java:109)
   at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
   at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
   at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
   at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
   at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
   at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.alfresco.web.app.servlet.AdminAuthenticationFilter.doFilter(AdminAuthenticationFilter.java:80)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:81)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
   at java.lang.Thread.run(Thread.java:619)
09:41:57,553 UserSmiley Frustratedystem INFO  [james.imapserver.JamesServerContext] Closing com.opsera.omm.james.imapserver.JamesServerContext@756bc363: display name [com.opsera.omm.james.imapserver.JamesServerContext@756bc363]; startup date [Wed Jan 27 18:42:30 CET 2010]; parent: org.alfresco.config.JBossEnabledWebApplicationContext@59050a0
log4j:ERROR LogMananger.repositorySelector was null likely due to error in class reloading, using NOPLoggerRepository.

Can you advice me about "How alfresco identify documents uniquely"

Thanks you
9 REPLIES 9

zomurn
Champ in-the-making
Champ in-the-making
I found the document in archive://SpacesStore which is

"  used to automatically store copies of deleted content. "

I never deleted this document ! Why this ?

mrogers
Star Contributor
Star Contributor
Well your node has been deleted.   That's why its in the archive store.

zomurn
Champ in-the-making
Champ in-the-making
That's wrong, I have a look in the database and I saw two records in alf_node table with this uuid and the archive spacestore :

1340885   4   1171657   d1285db0-a2ce-46ae-b7a7-95b7c8b4ca7f   1766152   0   1417   1179455   fbonnot   2010-01-27T15:20:02.221+01:00   fbonnot   2010-01-27T15:20:02.955+01:00   NULL
1340887   0   1171658   d1285db0-a2ce-46ae-b7a7-95b7c8b4ca7f   1766152   1   1417   NULL   NULL   NULL   NULL   NULL   NULL

As you can read, The first record says "node_deleted" to 0 !

Moreover, the document is accessible in the web-client (visible and consultable), the document is physically stored at the url pointing to alf_data/content/xxxx/xxx.bin

[img]http://img503.imageshack.us/img503/7262/archive.jpg[/img]

derek
Star Contributor
Star Contributor
Hi,
As you can read, The first record says "node_deleted" to 0 !
You miss the point of node_deleted: it has nothing to do with archiving.  The second column (the store ID) shows which store it is in.  Your node is in the archive store.  I'm sorry, but I have no idea why it is there, but it is and the data in the alf_node table looks fine.

zomurn
Champ in-the-making
Champ in-the-making
I had a look at document properties and I read :

{http://www.alfresco.org/model/content/1.0}modified   
Wed Jan 27 15:20:02 CET 2010
   {http://www.alfresco.org/model/dictionary/1.0}datetime   
   false
{http://www.alfresco.org/model/content/1.0}created   
Wed Jan 27 15:20:02 CET 2010
   {http://www.alfresco.org/model/dictionary/1.0}datetime

So As soon as the document is integrated into alfresco, an uuid is assigned to it and then it is moved to archive spacestore with a new uuid.
Archive spacestore stores the old association via its property

{http://www.alfresco.org/model/system/1.0}archivedOriginalParentAssoc   
workspace://SpacesStore/fcd23600-915c-4e82-86d9-3c3fcd289a3e|workspace://SpacesStore/d1285db0-a2ce-46ae-b7a7-95b7c8b4ca7f|{http://www.alfresco.org/model/content/1.0}contains|{http://www.opsera.com/opsera/model/0.1}270110718...
   {http://www.alfresco.org/model/dictionary/1.0}childassocref   
   false

And that's right, at the integration/importation time, the uuid is d1285db0-a2ce-46ae-b7a7-95b7c8b4ca7f (read in logs), but the immediate "move" to archiveSpacestore causes its uuid to change and so, I can't keep track of the document…
It there any reason that a document suddently goes to archive space store ? Does-it move to archiveSpacestore only after delete() operation ?

zomurn
Champ in-the-making
Champ in-the-making
I noticed that documents inside archive Spacestore don't have necessarily the sys:archived aspect, it is normal ? (so I don't know who archived this document)
I have this on 3 documents.

zomurn
Champ in-the-making
Champ in-the-making
Just for information, I confirm that the node was deleted by subsequent process.
But Have you any answer to my previous reply ?

Thanks

mrogers
Star Contributor
Star Contributor
If the node is archived by the DBNodeService then it will have the archived aspect added.

zomurn
Champ in-the-making
Champ in-the-making
OK. I don't know the answer.
But what I know is that the user clicked on the icon "delete all content inside folder".
I don't know which subsequent routine is called.

Thanks for your reply.