You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by Patricio Echagüe <pa...@gmail.com> on 2010/02/19 19:00:04 UTC

Re: ItemNotFoundException: failed to build path

Sunil, I'm having the same error but in my case I'm using my own persistence
Manager against Cassandra.

After debugging this issue, I found out that it has to do with HashMapIndex
which uses a file to map properties and names at the time of serialize them.
(bundle approach). it generates a file called names.properties.

You can try copying the names.properties from workspace->default into
version -> ..... to see if it works.

at this point, I don't know what I'm doing wrong.

My 2 cents

On Fri, Dec 25, 2009 at 5:04 AM, Alexander Klimetschek <ak...@day.com>wrote:

> On Tue, Dec 22, 2009 at 12:13, sunild <su...@coreobjects.com> wrote:
> > I am using jackrabbit and have enabled FileDataStore and using
> > MSSQLPersistenceManager.
> >
> > while Add content I am getting WARNING
> >
> > [SearchIndex] Exception while creating document for node:
> > 956eb525-e81f-4a4e-9037-f193d6080e5f: javax.jcr.RepositoryException:
> Missing
> > child node entry for node with id: 956eb525-e81f-4a4e-9037-f193d6080e5f
> >
> >
> > And While Finding the content I am getting ERROR
> >
> > Item not found; nested exception is javax.jcr.ItemNotFoundException:
> > failed to build path of *64ab495a-c093-4a89-8b86-b9973dd647b6     *:
> > *85f65e81-6eed-4c04-8fb5-2e44952b177f* has no child entry for
> > 64ab495a-c093-4a89-8b86-b9973dd647b6
> >
> > I have gone through MSSQL Database tables and found a row with
> > _/NODE_ID/_ --- *64AB495AC0934A898B86B9973DD647B6*   _/BUNDLE_DATA/_ ---
> >
> 020000040000000401*85F65E816EED4C048FB52E44952B177F*000A2D373633393437373734FFFFFFFF
> >
> 00000003000000050000000901000A31323733313433363538000000010126B74B14E0AA498B94844EEC950C1C490000000
> >
> 3000000060000000500000A31313638323734393731000000010000001D323030392D31322D32325431363A31363A31342E
> >
> 3034302B30353A33300000000300000007000100090100082D3632323633323300000001015EBF38CE04A9409ABE4D01CF
> >
> EA077C79FFFFFFFF01019ECFFFA2952740B497619DF093D6D8C300000003000A66726F7A656E4E6F646500000100
> >
> >
> > which is very much same as the nodeid being search for.  But the nodeId
> > present in database doesnot have hyphens and all the characters are Caps.
> >  That is the problem for the ERROR.
>
> No, this is right. The serialization in the db is different from the
> plain UUIDs (in order to save space). Also, this is the entry for the
> node in question (the "child" node). The problem reported means that
> the parent node 85f... does not contain a pointer to the "child" node,
> whereas that node points to that parent (see the part after the first
> * in the BUNDLE_DATA above - note that this is a binary serialization,
> nothing to be touched manually).
>
> It looks like some corruption happened earlier.
>
> You can fix those errors using the consistencyCheck/Fix options for
> the persistence manager. See this link for a guide on that:
>
> http://wiki.gxdeveloperweb.com/confluence/display/GXDEV/How+to+repair+a+'corrupt'+JCR<http://wiki.gxdeveloperweb.com/confluence/display/GXDEV/How+to+repair+a+%27corrupt%27+JCR>
>
> Regards,
> Alex
>
> --
> Alexander Klimetschek
> alexander.klimetschek@day.com
>



-- 
Patricio.-

Re: ItemNotFoundException: failed to build path

Posted by Alexander Klimetschek <ak...@day.com>.
2010/2/21 Patricio Echagüe <pa...@gmail.com>:
> Hi Alex, I dont have the code right now but the HashMapIndex if the default
> Index that is in the AbstractBundlePersistenceManager and no one seems to
> use this class (except me :)).
> I wrote a CassandraNameIndex class and the problem is solved.
>
> All the BundleDBPersitenceManager(s) use a DbNameIndex which also inherits
> from StringIndex as HashMapNameIndex does.
>
> I'll try to post the code sometime next week.

Ok. Could you also post the exception stacktrace you got?
HashMapNameIndex might be used in some other custom
PersistenceManagers, so knowing about problems is good.

Regards,
Alex

-- 
Alexander Klimetschek
alexander.klimetschek@day.com

Re: ItemNotFoundException: failed to build path

Posted by Patricio Echagüe <pa...@gmail.com>.
Hi Alex, I dont have the code right now but the HashMapIndex if the default
Index that is in the AbstractBundlePersistenceManager and no one seems to
use this class (except me :)).
I wrote a CassandraNameIndex class and the problem is solved.

All the BundleDBPersitenceManager(s) use a DbNameIndex which also inherits
from StringIndex as HashMapNameIndex does.

I'll try to post the code sometime next week.

On Fri, Feb 19, 2010 at 11:12 AM, Alexander Klimetschek <ak...@day.com>wrote:

> 2010/2/19 Patricio Echagüe <pa...@gmail.com>:
> > Sunil, I'm having the same error but in my case I'm using my own
> persistence
> > Manager against Cassandra.
> >
> > ...
> >
> > at this point, I don't know what I'm doing wrong.
>
> It is likely that your persistence manager isn't 100% right or is not
> stable when the system crashes. Could you post the code for it?
>
> Regards,
> Alex
>
> --
> Alexander Klimetschek
> alexander.klimetschek@day.com
>



-- 
Patricio.-

Re: ItemNotFoundException: failed to build path

Posted by Alexander Klimetschek <ak...@day.com>.
2010/2/19 Patricio Echagüe <pa...@gmail.com>:
> Sunil, I'm having the same error but in my case I'm using my own persistence
> Manager against Cassandra.
>
> ...
>
> at this point, I don't know what I'm doing wrong.

It is likely that your persistence manager isn't 100% right or is not
stable when the system crashes. Could you post the code for it?

Regards,
Alex

-- 
Alexander Klimetschek
alexander.klimetschek@day.com