You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by Tanju Erinmez <ta...@gmail.com> on 2006/06/22 00:14:41 UTC

Versioning not working with InMemPersistenceManager

Greetings,

I'm investigating the mentioned PM to speed up unit testing when I
noticed that it throws a NoSuchItemStateException in connection with
versioning (neither jackrabbit-core-1.0.1 nor latest from trunk work).

After looking into the code a bit of InMemPersistenceManager.java, I
got the impression that the wrong store map seems to be populated
(stateStore instead of refsStore). I changed the code accordingly in
store(NodeReferences refs) and destroy(NodeReferences refs) and the
versioning runs fine (at least for me).

Is this a viable fix?

TIA,
Tanju

---------

CONFIG:
default repository.xml except the following in sections <Workspace>
and <Versioning>:
<PersistenceManager
class="org.apache.jackrabbit.core.state.mem.InMemPersistenceManager">
  <param name="persistent" value="false"/>
</PersistenceManager>


TRACE:
Exception in thread "main" javax.jcr.RepositoryException:
/resources/jcr:baseVersion: unable to update item.:
4ab7c8b0-c685-4371-9d82-a6feb9d03481:
4ab7c8b0-c685-4371-9d82-a6feb9d03481
	at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1216)
	at org.apache.jackrabbit.core.NodeImpl.checkin(NodeImpl.java:2891)
	at VersioningAndWorkspaces.setupReview(VersioningAndWorkspaces.java:199)
	at VersioningAndWorkspaces.main(VersioningAndWorkspaces.java:53)
Caused by: org.apache.jackrabbit.core.state.NoSuchItemStateException:
4ab7c8b0-c685-4371-9d82-a6feb9d03481
	at org.apache.jackrabbit.core.state.SharedItemStateManager.getNodeReferences(SharedItemStateManager.java:307)
	at org.apache.jackrabbit.core.state.SharedItemStateManager.updateReferences(SharedItemStateManager.java:995)
	at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:484)
	at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:687)
	at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:717)
	at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:316)
	at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:323)
	at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:292)
	at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:258)
	at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1208)

Re: Versioning not working with InMemPersistenceManager

Posted by Tobias Bocanegra <to...@day.com>.
hi tanju,
yes, you're correct. with is wrong. i will fix it asap.
regards, toby

On 6/22/06, Tanju Erinmez <ta...@gmail.com> wrote:
> Greetings,
>
> I'm investigating the mentioned PM to speed up unit testing when I
> noticed that it throws a NoSuchItemStateException in connection with
> versioning (neither jackrabbit-core-1.0.1 nor latest from trunk work).
>
> After looking into the code a bit of InMemPersistenceManager.java, I
> got the impression that the wrong store map seems to be populated
> (stateStore instead of refsStore). I changed the code accordingly in
> store(NodeReferences refs) and destroy(NodeReferences refs) and the
> versioning runs fine (at least for me).
>
> Is this a viable fix?
>
> TIA,
> Tanju
>
> ---------
>
> CONFIG:
> default repository.xml except the following in sections <Workspace>
> and <Versioning>:
> <PersistenceManager
> class="org.apache.jackrabbit.core.state.mem.InMemPersistenceManager">
>   <param name="persistent" value="false"/>
> </PersistenceManager>
>
>
> TRACE:
> Exception in thread "main" javax.jcr.RepositoryException:
> /resources/jcr:baseVersion: unable to update item.:
> 4ab7c8b0-c685-4371-9d82-a6feb9d03481:
> 4ab7c8b0-c685-4371-9d82-a6feb9d03481
>         at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1216)
>         at org.apache.jackrabbit.core.NodeImpl.checkin(NodeImpl.java:2891)
>         at VersioningAndWorkspaces.setupReview(VersioningAndWorkspaces.java:199)
>         at VersioningAndWorkspaces.main(VersioningAndWorkspaces.java:53)
> Caused by: org.apache.jackrabbit.core.state.NoSuchItemStateException:
> 4ab7c8b0-c685-4371-9d82-a6feb9d03481
>         at org.apache.jackrabbit.core.state.SharedItemStateManager.getNodeReferences(SharedItemStateManager.java:307)
>         at org.apache.jackrabbit.core.state.SharedItemStateManager.updateReferences(SharedItemStateManager.java:995)
>         at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:484)
>         at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:687)
>         at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:717)
>         at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:316)
>         at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:323)
>         at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:292)
>         at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:258)
>         at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1208)
>


-- 
-----------------------------------------< tobias.bocanegra@day.com >---
Tobias Bocanegra, Day Management AG, Barfuesserplatz 6, CH - 4001 Basel
T +41 61 226 98 98, F +41 61 226 98 97
-----------------------------------------------< http://www.day.com >---

Re: Versioning not working with InMemPersistenceManager

Posted by Tanju Erinmez <ta...@gmail.com>.
Great, thanks a lot toby.
- Tanju



On 6/22/06, Tobias Bocanegra <to...@day.com> wrote:
> oops...typo, i try again :-)
> --------------------------------------------------
> hi tanju,
> yes, you're correct. the InMemPersistenceManager is buggy. i will fix it asap.
> regards, toby
>
> On 6/22/06, Tanju Erinmez <ta...@gmail.com> wrote:
> > Greetings,
> >
> > I'm investigating the mentioned PM to speed up unit testing when I
> > noticed that it throws a NoSuchItemStateException in connection with
> > versioning (neither jackrabbit-core-1.0.1 nor latest from trunk work).
> >
> > After looking into the code a bit of InMemPersistenceManager.java, I
> > got the impression that the wrong store map seems to be populated
> > (stateStore instead of refsStore). I changed the code accordingly in
> > store(NodeReferences refs) and destroy(NodeReferences refs) and the
> > versioning runs fine (at least for me).
> >
> > Is this a viable fix?
> >
> > TIA,
> > Tanju
> >
> > ---------
> >
> > CONFIG:
> > default repository.xml except the following in sections <Workspace>
> > and <Versioning>:
> > <PersistenceManager
> > class="org.apache.jackrabbit.core.state.mem.InMemPersistenceManager">
> >   <param name="persistent" value="false"/>
> > </PersistenceManager>
> >
> >
> > TRACE:
> > Exception in thread "main" javax.jcr.RepositoryException:
> > /resources/jcr:baseVersion: unable to update item.:
> > 4ab7c8b0-c685-4371-9d82-a6feb9d03481:
> > 4ab7c8b0-c685-4371-9d82-a6feb9d03481
> >         at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1216)
> >         at org.apache.jackrabbit.core.NodeImpl.checkin(NodeImpl.java:2891)
> >         at VersioningAndWorkspaces.setupReview(VersioningAndWorkspaces.java:199)
> >         at VersioningAndWorkspaces.main(VersioningAndWorkspaces.java:53)
> > Caused by: org.apache.jackrabbit.core.state.NoSuchItemStateException:
> > 4ab7c8b0-c685-4371-9d82-a6feb9d03481
> >         at org.apache.jackrabbit.core.state.SharedItemStateManager.getNodeReferences(SharedItemStateManager.java:307)
> >         at org.apache.jackrabbit.core.state.SharedItemStateManager.updateReferences(SharedItemStateManager.java:995)
> >         at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:484)
> >         at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:687)
> >         at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:717)
> >         at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:316)
> >         at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:323)
> >         at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:292)
> >         at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:258)
> >         at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1208)
> >
>
>
> --
> -----------------------------------------< tobias.bocanegra@day.com >---
> Tobias Bocanegra, Day Management AG, Barfuesserplatz 6, CH - 4001 Basel
> T +41 61 226 98 98, F +41 61 226 98 97
> -----------------------------------------------< http://www.day.com >---
>

Re: Versioning not working with InMemPersistenceManager

Posted by Tobias Bocanegra <to...@day.com>.
oops...typo, i try again :-)
--------------------------------------------------
hi tanju,
yes, you're correct. the InMemPersistenceManager is buggy. i will fix it asap.
regards, toby

On 6/22/06, Tanju Erinmez <ta...@gmail.com> wrote:
> Greetings,
>
> I'm investigating the mentioned PM to speed up unit testing when I
> noticed that it throws a NoSuchItemStateException in connection with
> versioning (neither jackrabbit-core-1.0.1 nor latest from trunk work).
>
> After looking into the code a bit of InMemPersistenceManager.java, I
> got the impression that the wrong store map seems to be populated
> (stateStore instead of refsStore). I changed the code accordingly in
> store(NodeReferences refs) and destroy(NodeReferences refs) and the
> versioning runs fine (at least for me).
>
> Is this a viable fix?
>
> TIA,
> Tanju
>
> ---------
>
> CONFIG:
> default repository.xml except the following in sections <Workspace>
> and <Versioning>:
> <PersistenceManager
> class="org.apache.jackrabbit.core.state.mem.InMemPersistenceManager">
>   <param name="persistent" value="false"/>
> </PersistenceManager>
>
>
> TRACE:
> Exception in thread "main" javax.jcr.RepositoryException:
> /resources/jcr:baseVersion: unable to update item.:
> 4ab7c8b0-c685-4371-9d82-a6feb9d03481:
> 4ab7c8b0-c685-4371-9d82-a6feb9d03481
>         at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1216)
>         at org.apache.jackrabbit.core.NodeImpl.checkin(NodeImpl.java:2891)
>         at VersioningAndWorkspaces.setupReview(VersioningAndWorkspaces.java:199)
>         at VersioningAndWorkspaces.main(VersioningAndWorkspaces.java:53)
> Caused by: org.apache.jackrabbit.core.state.NoSuchItemStateException:
> 4ab7c8b0-c685-4371-9d82-a6feb9d03481
>         at org.apache.jackrabbit.core.state.SharedItemStateManager.getNodeReferences(SharedItemStateManager.java:307)
>         at org.apache.jackrabbit.core.state.SharedItemStateManager.updateReferences(SharedItemStateManager.java:995)
>         at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:484)
>         at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:687)
>         at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:717)
>         at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:316)
>         at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:323)
>         at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:292)
>         at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:258)
>         at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1208)
>


-- 
-----------------------------------------< tobias.bocanegra@day.com >---
Tobias Bocanegra, Day Management AG, Barfuesserplatz 6, CH - 4001 Basel
T +41 61 226 98 98, F +41 61 226 98 97
-----------------------------------------------< http://www.day.com >---