code: @Override
     public List<ACLHolder> getACLHolders() throws RepositoryException, IllegalStateException,
        UnsupportedOperationException
     {
        checkIfOpened();
        ResultSet resultSet = null;
        try
        {
           // query will return all the ACL holder
           resultSet = findACLHolders();
           Map<String, ACLHolder> mHolders = new HashMap<String, ACLHolder>();
  
           while (resultSet.next())
           {
              String cpid = getIdentifier(resultSet.getString(COLUMN_PARENTID));
              ACLHolder holder = mHolders.get(cpid);
              if (holder == null)
              {
                 holder = new ACLHolder(cpid);
                 mHolders.put(cpid, holder);
              }
              int cptype = resultSet.getInt(COLUMN_PTYPE);
  
              if (cptype == ExtendedPropertyType.PERMISSION)
              {
                 holder.setPermissions(true);
              }
              else
              {
                 holder.setOwner(true);
              }
           }
           return new ArrayList<ACLHolder>(mHolders.values());
        }
        catch (SQLException e)
        {
           throw new RepositoryException(e);
        }
        finally
        {
           if (resultSet != null)
           {
              try
              {
                 resultSet.close();
              }
              catch (SQLException e)
              {
                 LOG.error("Can't close the ResultSet: " + e.getMessage());
              }
           }
        }
     }
docs: {@inheritDoc}