+ protected synchronized Node retrieveAndSave(String path) {
+ try {
+ Node node = retrieve(jcrAdminSession, path);
+ if (node == null)
+ return null;
+ jcrAdminSession.save();
+ return node;
+ } catch (RepositoryException e) {
+ JcrUtils.discardQuietly(jcrAdminSession);
+ throw new ArgeoException("Cannot retrieve and save " + path, e);
+ }
+ }
+
+ /** Session is not saved */
+ protected Node proxyUrl(Session session, String baseUrl, String path)
+ throws RepositoryException {
+ String nodePath = getNodePath(path);
+ if (jcrAdminSession.itemExists(nodePath))
+ throw new ArgeoException("Node " + nodePath + " already exists");