{
if (_combinedpermissionscreated) {
return _combinedpermissions;
}
synchronized(this) {
PermissionCollectionCombiner combiner = new PermissionCollectionCombiner();
Zone zone = this;
combiner.combine(zone.getLocalPermissions());
while(zone != null) {
combiner.combine(zone.getPermissions());
zone = zone._parent;
}
_combinedpermissionscreated = true;
return _combinedpermissions = combiner.getResult();
}
}