@Test
  @FixFor("MODE-2109 ")
  public void shouldOnlyAllowCloningInSomeCases() throws Exception {
    session.getWorkspace().createWorkspace("other");

    try {
      session.getRootNode().addNode("col1", "test:smallCollection");
      Node regular = session.getRootNode().addNode("regular");
      regular.addNode("regular1");
      session.save();

      // cloning a large collection is not allowed
      JcrWorkspace workspace = session.getWorkspace();
      try {
        workspace.clone(workspace.getName(), "/col1", "/regular", false);
        fail("Should not allow cloning");
      } catch (ConstraintViolationException e) {
        // expected
      }

      // clone a regular node into a large collection
      JcrSession otherSession = repository.login("other");
      Node col2 = otherSession.getRootNode().addNode("col2", "test:smallCollection");
      col2.addNode("child1");
      otherSession.save();

      otherSession.getWorkspace().clone(workspace.getName(), "/regular", "/col2/regular", false);
      NodeIterator nodes = otherSession.getNode("/col2").getNodes();
      assertEquals(2, nodes.getSize());
    } finally {
      session.getWorkspace().deleteWorkspace("other");
    }
  }
 /**
  * {@inheritDoc}
  *
  * @see org.modeshape.jcr.RepositoryQueryManager#reindexContent(org.modeshape.jcr.JcrWorkspace,
  *     java.lang.String, int)
  */
 @Override
 public void reindexContent(JcrWorkspace workspace, String path, int depth) {
   Path at = workspace.context().getValueFactories().getPathFactory().create(path);
   SearchEngineIndexer indexer =
       new SearchEngineIndexer(context, searchEngine, connectionFactory, maxDepthPerRead);
   try {
     indexer.index(workspace.getName(), at, depth);
   } finally {
     indexer.close();
   }
 }
 /**
  * {@inheritDoc}
  *
  * @see org.modeshape.jcr.RepositoryQueryManager#reindexContent(org.modeshape.jcr.JcrWorkspace)
  */
 @Override
 public void reindexContent(JcrWorkspace workspace) {
   SearchEngineIndexer indexer =
       new SearchEngineIndexer(context, searchEngine, connectionFactory, maxDepthPerRead);
   try {
     indexer.index(workspace.getName());
   } finally {
     indexer.close();
   }
 }