Uploaded image for project: 'ModeShape'
  1. ModeShape
  2. MODE-879

ItemNotFound, after versioning a shared Node and cloning it

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Blocker
    • 2.3.0.Final, 2.2.1.GA
    • 2.2.0.Final
    • JCR
    • None

    Description

      @Test
      public void testSimpleGetPackageItemHistoricalForShareableAsset() throws Exception {

      Node node = getRepo().getSession().getNode("/drools:repository/drools:package_area/globalArea/");
      Node assetNode = node.getNode("assets").addNode("testKurt","drools:assetNodeType");
      //Adding some required properties
      assetNode.setProperty("drools:packageName", "one");
      assetNode.setProperty("drools:title", "title");
      assetNode.setProperty("drools:format", "format");
      assetNode.setProperty("drools:description", "description");
      Calendar lastModified = Calendar.getInstance();
      assetNode.setProperty("drools:lastModified", lastModified);
      getRepo().getSession().save();
      assetNode.checkin();
      findAndPrintNodeName(assetNode);

      //Creating a shared Node
      assetNode.checkout();
      assetNode.addMixin("mix:shareable");
      getRepo().getSession().save();
      assetNode.checkin();
      Workspace workspace = getRepo().getSession().getWorkspace();
      String srcPath = "/drools:repository/drools:package_area/globalArea/assets/testKurt";
      String path = "/drools:repository/drools:package_area/defaultPackage/assets/testKurt";
      workspace.clone(workspace.getName(), srcPath, path, false);

      findAndPrintNodeName(assetNode);

      // Test package snapshot
      String packageName = getDefaultPackage().getName();
      try {
      Node snaps = getRepo().getAreaNode( "drools:packagesnapshot_area" );
      if ( !snaps.hasNode( packageName ) )

      { snaps.addNode( packageName, "nt:folder" ); getRepo().save(); }

      String source = "/drools:repository/drools:package_area/defaultPackage";
      String newName = "/drools:repository/drools:packagesnapshot_area/defaultPackage/SNAP";
      getRepo().getSession().getWorkspace().copy( source, newName );
      } catch ( Exception e )

      { fail(); }

      findAndPrintNodeName(assetNode); // this now throws the error
      //asset.updateDescription("yeah !");
      }

      private void findAndPrintNodeName(Node node) throws ValueFormatException, PathNotFoundException, RepositoryException {
      String UUID = node.getProperty("

      {http://www.jcp.org/jcr/1.0}

      baseVersion").getString();
      Node nodeFound = getRepo().getSession().getNodeByUUID(UUID);
      System.out.println("Node:" + nodeFound.getName());
      }

      The output of it something like:
      Node:2010-09-03T11?44?26.125-04?00
      Node:2010-09-03T11?44?30.956-04?00

      but in the last step it throws an exception

      The stack is:

      javax.jcr.ItemNotFoundException: Unable to find "

      {http://www.jcp.org/jcr/1.0}

      system/

      {http://www.jcp.org/jcr/1.0}

      versionStorage/{}62bc2585-a277-4bf6-ae4e-23217d44393b/{}2010-09-03T114430.956-0400"; lowest existing path is "/

      {http://www.jcp.org/jcr/1.0}

      system/

      {http://www.jcp.org/jcr/1.0}

      versionStorage/{}62bc2585-a277-4bf6-ae4e-23217d44393b"
      at org.modeshape.jcr.SessionCache.findJcrNode(SessionCache.java:553)
      at org.modeshape.jcr.JcrSession.getNodeByUUID(JcrSession.java:789)
      at org.modeshape.jcr.JcrSession.getNodeByUUID(JcrSession.java:106)
      at org.drools.repository.ShareableAssetItemTest.findAndPrintNodeName(ShareableAssetItemTest.java:225)
      at org.drools.repository.ShareableAssetItemTest.testSimpleGetPackageItemHistoricalForShareableAsset(ShareableAssetItemTest.java:219)
      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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
      at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
      at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
      at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
      at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
      at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
      at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
      at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
      Caused by: org.modeshape.graph.property.PathNotFoundException: Unable to find "

      {http://www.jcp.org/jcr/1.0}

      system/

      {http://www.jcp.org/jcr/1.0}

      versionStorage/{}62bc2585-a277-4bf6-ae4e-23217d44393b/{}2010-09-03T114430.956-0400"; lowest existing path is "/

      {http://www.jcp.org/jcr/1.0}

      system/

      {http://www.jcp.org/jcr/1.0}

      versionStorage/{}62bc2585-a277-4bf6-ae4e-23217d44393b"
      at org.modeshape.graph.session.GraphSession.findNodeRelativeTo(GraphSession.java:508)
      at org.modeshape.graph.session.GraphSession.findNodeWith(GraphSession.java:331)
      at org.modeshape.graph.session.GraphSession.findNodeWith(GraphSession.java:314)
      at org.modeshape.graph.session.GraphSession.findNodeWith(GraphSession.java:267)
      at org.modeshape.jcr.SessionCache.findJcrNode(SessionCache.java:551)
      ... 27 more

      This is using the cnd's of drools-repository.

      Attachments

        1. MODE-879-fix.patch
          6 kB
        2. rule_node_type.cnd
          0.9 kB
        3. tag_node_type.cnd
          0.6 kB

        Activity

          People

            rhauch Randall Hauch (Inactive)
            kstam@redhat.com Kurt Stam (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: