jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jan Grathwohl <jan.grathw...@kontrast.de>
Subject Re: How to remove corrupted node from repository?
Date Fri, 07 Aug 2009 14:54:42 GMT
Hi Stefan,


> what's the exact output of the consistencyCheck/Fix? dangling child  
> node entries
> should be fixable.

The output was :

2009-08-06 12:01:39,350 ERROR  
[org 
.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager]  
NodeState cd0adbec-b2
7d-44b3-900f-d720f705c2e6 references inexistent parent id  
c511b2ee-8183-43ea-ae96-fabb27badfba

If I understand the message right, this is a different node that  
references the same inexistent parent as the node causing the problem?  
At least the first UUID ist not mentioned in the exception message...


> do you know the path of the corrupted node? are you able to navigate  
> to
> the node?

No, but getting the node by UUID still works...

>
>>
>> Is there anything that I could do to solve this or remove the node,  
>> maybe
>> through Jackrabbit API or even direct manipulation of the database  
>> content?
>> Any ideas are highly appreciated.
>
> if everything fails, you could try to fix that inconsistency  
> programmatically,
> e.g. by directly reading the troublesome NodeState instance through  
> the
> pm, fix it and write it back. but you'll have to get your hands  
> dirty...

That's what I did now. Wrote a small program that accesses the  
workspace persistence manager through the JCA handle and  
RepositoryImpl (partially by using Java reflection to call protected  
methods and fields), and then deleted the broken NodeState from the  
repository. So far that doesn't seem to have caused any further  
problems.

Many thanks for the hint!

Regards,

Jan



Mime
View raw message