jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xavier Coulon" <xcou...@gmail.com>
Subject Re: [OCM] Unable to retrieve all versions of an item
Date Wed, 27 Feb 2008 08:51:49 GMT
Hello Christophe,

Thanks for your help.
Indeed, I forgot to mention that I'm using Jackrabbit 1.4 with the new
jackrabbit-core-1.4.1 package.
Can you tell me what JIRA issue you created for this bug ?

Thanks
Xavier

On Wed, Feb 27, 2008 at 9:23 AM, Christophe Lombart <
christophe.lombart@gmail.com> wrote:

> Xavier,
>
> I made a unit tests and I have the same behaviour. I'm going to continue
> my
> investigation and create a jira issue. It looks like a big bug within
> version management. This case was not well cover by the unit tests. Are
> you
> using 1.5-SNAPSHOT or another jackrabbit version ?
>
> br,
> Christophe
>
>
> On Tue, Feb 26, 2008 at 3:10 PM, Xavier Coulon <xcoulon@gmail.com> wrote:
>
> > Hello,
> >
> > I want to retrieve all versions of an item given its path.
> > The code I have is here to list versions and put each item version in a
> > list:
> >
> > public List<Content> retrieveVersions(String path) {
> >        List<Content> versions = new ArrayList<Content>();
> >        VersionIterator versionIterator =
> jcrMappingTemplate.getAllVersions
> > (path);
> >        while (versionIterator.hasNext()) {
> >            Version version = (Version) versionIterator.next();
> >            LOG.info("version found : " + version.getName() + " - "
> >                    + version.getPath() + " - "
> >                    + version.getCreated().getTime());
> >            versions.add((Content)jcrMappingTemplate.getObject(path,
> > version.getName()));
> >
> >        }
> >        return versions;
> >    }
> >
> > And the Content class itself (pretty simple, used to store images for
> now)
> > :
> >
> > @Node(jcrType="nt:unstructured",
> >        jcrMixinTypes = "mix:versionable,mix:referenceable,mix:lockable")
> > public class Content {
> >
> >    /** Node path in the CR */
> >    @Field(path=true)
> >    private String path;
> >
> >    @Field(uuid=true)
> >    private String uuid;
> >
> >    @Field(jcrName = "test:lastModified")
> >    private Calendar lastModified;
> >
> >    /** content title */
> >    @Field(jcrName = "test:title")
> >    private String title = null;
> >
> >    @Field(jcrName = "test:mimeType")
> >    private String mimeType;
> >
> >    @Field(jcrName = "test:data")
> >    private byte[] data;
> >
> >    ... getters + setters....
> > }
> >
> >
> >
> > When I run the code in a JUnit test, I get the following stacktrace :
> >
> > org.springmodules.jcr.JcrSystemException: Repository access exception;
> > nested exception is
> > org.apache.jackrabbit.ocm.exception.IncorrectPersistentClassException:
> > Node
> > type: nt:unstructured has no descriptor.
> >    at
> >
> >
> org.springmodules.jcr.jackrabbit.ocm.JcrMappingTemplate.convertMappingAccessException
> > (JcrMappingTemplate.java:289)
> >    at org.springmodules.jcr.jackrabbit.ocm.JcrMappingTemplate$1.doInJcr(
> > JcrMappingTemplate.java:170)
> >    at org.springmodules.jcr.JcrTemplate.execute(JcrTemplate.java:76)
> >    at org.springmodules.jcr.jackrabbit.ocm.JcrMappingTemplate.execute(
> > JcrMappingTemplate.java:163)
> >    at org.springmodules.jcr.jackrabbit.ocm.JcrMappingTemplate.getObject(
> > JcrMappingTemplate.java:225)
> >    at sample.service.impl.ContentServiceImpl.retrieveVersions(
> > ContentServiceImpl.java:105)
> >    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.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(
> > AopUtils.java:301)
> >    at
> >
> >
> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint
> > (ReflectiveMethodInvocation.java:182)
> >    at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed
> > (
> > ReflectiveMethodInvocation.java:149)
> >    at
> >
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(
> > TransactionInterceptor.java:106)
> >    at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed
> > (
> > ReflectiveMethodInvocation.java:171)
> >    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(
> > JdkDynamicAopProxy.java:204)
> >    at $Proxy16.retrieveVersions(Unknown Source)
> >    at sample.service.ContentServiceTestCase.testGetAllVersions(
> > ContentServiceTestCase.java:188)
> >    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.springframework.test.context.junit4.SpringTestMethod.invoke(
> > SpringTestMethod.java:198)
> >    at
> > org.springframework.test.context.junit4.SpringMethodRoadie.runTestMethod
> (
> > SpringMethodRoadie.java:274)
> >    at org.springframework.test.context.junit4.SpringMethodRoadie$2.run(
> > SpringMethodRoadie.java:207)
> >    at
> >
> >
> org.springframework.test.context.junit4.SpringMethodRoadie.runBeforesThenTestThenAfters
> > (SpringMethodRoadie.java:254)
> >    at
> >
> >
> org.springframework.test.context.junit4.SpringMethodRoadie.runWithRepetitions
> > (SpringMethodRoadie.java:234)
> >    at org.springframework.test.context.junit4.SpringMethodRoadie.runTest
> (
> > SpringMethodRoadie.java:204)
> >    at org.springframework.test.context.junit4.SpringMethodRoadie.run(
> > SpringMethodRoadie.java:146)
> >    at
> >
> >
> org.springframework.test.context.junit4.SpringJUnit4ClassRunner.invokeTestMethod
> > (SpringJUnit4ClassRunner.java:151)
> >    at org.junit.internal.runners.JUnit4ClassRunner.runMethods(
> > JUnit4ClassRunner.java:51)
> >    at org.junit.internal.runners.JUnit4ClassRunner$1.run(
> > JUnit4ClassRunner.java:44)
> >    at org.junit.internal.runners.ClassRoadie.runUnprotected(
> > ClassRoadie.java:27)
> >    at org.junit.internal.runners.ClassRoadie.runProtected(
> ClassRoadie.java
> > :37)
> >    at org.junit.internal.runners.JUnit4ClassRunner.run(
> > JUnit4ClassRunner.java:42)
> >    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(
> > JUnit4TestReference.java:38)
> >    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(
> > TestExecution.java:38)
> >    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(
> > RemoteTestRunner.java:460)
> >    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(
> > RemoteTestRunner.java:673)
> >    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(
> > RemoteTestRunner.java:386)
> >    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(
> > RemoteTestRunner.java:196)
> > Caused by:
> > org.apache.jackrabbit.ocm.exception.IncorrectPersistentClassException:
> > Node
> > type: nt:unstructured has no descriptor.
> >    at
> >
> >
> org.apache.jackrabbit.ocm.mapper.impl.AbstractMapperImpl.getClassDescriptorByNodeType
> > (AbstractMapperImpl.java:188)
> >    at
> >
> >
> org.apache.jackrabbit.ocm.manager.objectconverter.impl.ObjectConverterImpl.getObject
> > (ObjectConverterImpl.java:293)
> >    at
> >
> org.apache.jackrabbit.ocm.manager.impl.ObjectContentManagerImpl.getObject(
> > ObjectContentManagerImpl.java:313)
> >    at
> > org.springmodules.jcr.jackrabbit.ocm.JcrMappingTemplate$6.doInJcrMapping
> (
> > JcrMappingTemplate.java:228)
> >    at org.springmodules.jcr.jackrabbit.ocm.JcrMappingTemplate$1.doInJcr(
> > JcrMappingTemplate.java:168)
> >    ... 39 more
> >
> > What is the descriptor I need to add ?
> >
> > Thank you in advance
> > Xavier
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message