### Eclipse Workspace Patch 1.0 #P oak-core Index: src/main/java/org/apache/jackrabbit/oak/core/SecureNodeState.java =================================================================== --- src/main/java/org/apache/jackrabbit/oak/core/SecureNodeState.java (revision 1465611) +++ src/main/java/org/apache/jackrabbit/oak/core/SecureNodeState.java (working copy) @@ -39,7 +39,6 @@ * SecureNodeState... * * TODO: clarify if HIDDEN items should be filtered by this NodeState implementation - * TODO: add proper implementation for getPropertyCount and getChildrenCount * TODO: clarify usage of ReadStatus in getChildNodeEntries * TODO: add proper equals/hashcode implementation * TODO: should be package-private @@ -48,8 +47,10 @@ private final ImmutableTree base; private final PermissionProvider permissionProvider; - + private ReadStatus readStatus; + private long childNodeCount = -1; + private long propertyCount = -1; public SecureNodeState(@Nonnull NodeState rootState, @Nonnull PermissionProvider permissionProvider, @@ -85,8 +86,10 @@ @Override public long getPropertyCount() { - // TODO: make sure cnt respects read permissions (OAK-708) - return getBaseState().getPropertyCount(); + if (propertyCount==-1){ + propertyCount = super.getPropertyCount(); + } + return propertyCount; } @Nonnull @@ -122,8 +125,10 @@ @Override public long getChildNodeCount() { - // TODO: make sure cnt respects read permissions (OAK-708) - return getBaseState().getChildNodeCount(); + if (childNodeCount==-1){ + childNodeCount = super.getChildNodeCount(); + } + return childNodeCount; } @Override