You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "David Pitfield (JIRA)" <ji...@apache.org> on 2006/08/04 21:42:14 UTC

[jira] Commented: (JCR-505) TCK: AbstractJCRTest fails if setUp/tearDown cannot remove children of test node

    [ http://issues.apache.org/jira/browse/JCR-505?page=comments#action_12425834 ] 
            
David Pitfield commented on JCR-505:
------------------------------------

Thank you for the change to test whether the nodedef is mandatory or protected.

There are a couple of other scenarios which prevent the node from being removed:

1) the parent node is protected
2) implementation-specific constraints (per 7.1.6)

An example of the latter is a node that is conditionally mandatory based on a property's value.

Therefore I propose consuming any ConstraintViolationException thrown by remove in cleanUpTestRoot of AbstractJCRTest.

> TCK: AbstractJCRTest fails if setUp/tearDown cannot remove children of test node
> --------------------------------------------------------------------------------
>
>                 Key: JCR-505
>                 URL: http://issues.apache.org/jira/browse/JCR-505
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: test
>            Reporter: David Pitfield
>             Fix For: 1.1
>
>
> If the test node exists, the setUp and tearDown methods remove all its child nodes.  In some repositories these child nodes may be mandatory or protected, causing test setup/teardown to fail.
> Proposal: tolerate exceptions thrown in removing a child node in test setup/teardown.
> --- ../AbstractJCRTest.java     (revision 422074)
> +++ ../AbstractJCRTest.java     (working copy)
> @@ -344,7 +344,11 @@
>                  // clean test root
>                  testRootNode = root.getNode(testPath);
>                  for (NodeIterator children = testRootNode.getNodes(); children.hasNext();) {
> -                    children.nextNode().remove();
> +                    try {
> +                      children.nextNode().remove();
> +                    } catch (RepositoryException e) {
> +                      // consume
> +                    }
>                  }
>              } else {
>                  // create nodes to testPath
> @@ -375,7 +379,11 @@
>                          // clean test root
>                          testRootNode = root.getNode(testPath);
>                          for (NodeIterator children = testRootNode.getNodes(); children.hasNext();) {
> -                            children.nextNode().remove();
> +                            try {
> +                              children.nextNode().remove();
> +                            } catch (RepositoryException e) {
> +                              // consume
> +                            }
>                          }
>                          root.save();
>                      }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira