code: public List<PropertyImpl> getReferences(String identifier) throws RepositoryException
     {
        List<PropertyData> refDatas = transactionableManager.getReferencesData(identifier, true);
        List<PropertyImpl> refs = new ArrayList<PropertyImpl>(refDatas.size());
        for (int i = 0, length = refDatas.size(); i < length; i++)
        {
           PropertyData data = refDatas.get(i);
           ItemState state = changesLog.getItemState(data.getIdentifier());
           if (state != null)
           {
              if (state.isDeleted())
              {
                 // if the Property was deleted skip it for now
                 continue;
              }
  
              // otherwise use transient data
              data = (PropertyData)state.getData();
           }
  
           NodeData parent = (NodeData)getItemData(data.getParentIdentifier());
           // if parent exists check for read permissions, otherwise the parent was deleted in another session.
           if (parent != null)
           {
              // skip not permitted
              if (accessManager.hasPermission(parent.getACL(), new String[]{PermissionType.READ}, session.getUserState()
                 .getIdentity()))
              {
                 PropertyImpl item = (PropertyImpl)readItem(data, parent, true, false);
  
                 refs.add(item);
                 session.getActionHandler().postRead(item);
              }
           }
        }
        return refs;
     }
docs: Returns saved only references (allowed by specs).
  
  @param identifier
  String
  @return List of PropertyImpl
  @throws RepositoryException
  if error
  
  @see javax.jcr.Node#getReferences