Introduce Makefile for Java build
[lgpl/argeo-commons.git] / org.argeo.cms.ui / src / org / argeo / cms / ui / jcr / model / WorkspaceElem.java
index 45cda80ee59c79f039807a560987506d338dae7d..24fc5758d50a3b988f1941a41d4d55dfc384f6d2 100644 (file)
@@ -1,20 +1,6 @@
-/*
- * Copyright (C) 2007-2012 Argeo GmbH
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
 package org.argeo.cms.ui.jcr.model;
 
+import javax.jcr.AccessDeniedException;
 import javax.jcr.Node;
 import javax.jcr.NodeIterator;
 import javax.jcr.RepositoryException;
@@ -55,8 +41,7 @@ public class WorkspaceElem extends TreeParent {
                        else
                                return null;
                } catch (RepositoryException e) {
-                       throw new EclipseUiException("Cannot get root node of workspace "
-                                       + getName(), e);
+                       throw new EclipseUiException("Cannot get root node of workspace " + getName(), e);
                }
        }
 
@@ -64,8 +49,7 @@ public class WorkspaceElem extends TreeParent {
                try {
                        session = ((RepositoryElem) getParent()).repositoryLogin(getName());
                } catch (RepositoryException e) {
-                       throw new EclipseUiException("Cannot connect to repository "
-                                       + getName(), e);
+                       throw new EclipseUiException("Cannot connect to repository " + getName(), e);
                }
        }
 
@@ -93,13 +77,16 @@ public class WorkspaceElem extends TreeParent {
        public synchronized boolean hasChildren() {
                try {
                        if (isConnected())
-                               return session.getRootNode().hasNodes();
+                               try {
+                                       return session.getRootNode().hasNodes();
+                               } catch (AccessDeniedException e) {
+                                       // current user may not have access to the root node
+                                       return false;
+                               }
                        else
                                return false;
                } catch (RepositoryException re) {
-                       throw new EclipseUiException(
-                                       "Unexpected error while checking children node existence",
-                                       re);
+                       throw new EclipseUiException("Unexpected error while checking children node existence", re);
                }
        }
 
@@ -123,9 +110,7 @@ public class WorkspaceElem extends TreeParent {
                                }
                                return super.getChildren();
                        } catch (RepositoryException e) {
-                               throw new EclipseUiException(
-                                               "Cannot initialize WorkspaceNode UI object."
-                                                               + getName(), e);
+                               throw new EclipseUiException("Cannot initialize WorkspaceNode UI object." + getName(), e);
                        }
                }
        }