}
public Access readAccess(String path) throws InvalidAccessException {
Transaction tx = new Transaction();
try {
XMLSerializableAdapter col = getAccessCollection();
Access access = (Access)accessCache.get(path);
if ( access != null ) {
// Perform access check for cached items
checkAccess(col, Access.READ);
}
else {
access = (Access)col.getObject(tx, path);
if ( access == null ) {
access = new Access();
access.setPath(path);
}
accessCache.put(path, access);