code: protected List<AccessControlEntry> readACLPermisions(String cid, Map<String, SortedSet<TempPropertyData>> properties)
        throws SQLException, IllegalACLException, IOException
     {
        List<AccessControlEntry> naPermissions = new ArrayList<AccessControlEntry>();
        Set<TempPropertyData> permValues = properties.get(Constants.EXO_PERMISSIONS.getAsString());
  
        if (permValues != null)
        {
           for (TempPropertyData value : permValues)
           {
              AccessControlEntry ace;
              try
              {
                 ace = AccessControlEntry.parse(ValueDataUtil.getString(value.getValueData()));
              }
              catch (RepositoryException e)
              {
                 throw new IOException(e.getMessage(), e);
              }
              naPermissions.add(ace);
           }
  
           return naPermissions;
        }
        else
        {
           throw new IllegalACLException("Property exo:permissions is not found for node with id: " + getIdentifier(cid));
        }
     }
docs: Read ACL Permissions from properties set.
  
  @param cid node id (used only for error messages)
  @param properties - Property name and property values
  @return list ACL
  @throws SQLException
  @throws IllegalACLException
  @throws IOException