code: protected List<PropertyData> getReferencedPropertiesData(final String identifier) throws RepositoryException
     {
        List<PropertyData> refProps = null;
        if (cache.isEnabled())
        {
           refProps = cache.getReferencedProperties(identifier);
           if (refProps != null)
           {
              return refProps;
           }
        }
        final DataRequest request = new DataRequest(identifier, DataRequest.GET_REFERENCES);
  
        try
        {
           request.start();
           if (cache.isEnabled())
           {
              // Try first to get the value from the cache since a
              // request could have been launched just before
              refProps = cache.getReferencedProperties(identifier);
              if (refProps != null)
              {
                 return refProps;
              }
           }
           return executeAction(new PrivilegedExceptionAction<List<PropertyData>>()
           {
              public List<PropertyData> run() throws RepositoryException
              {
                 List<PropertyData> refProps = CacheableWorkspaceDataManager.super.getReferencesData(identifier, false);
                 if (cache.isEnabled())
                 {
                    cache.addReferencedProperties(identifier, refProps);
                 }
                 return refProps;
              }
           });
        }
        finally
        {
           request.done();
        }
     }
docs: Get referenced properties data.
  
  @param identifier
  referenceable identifier
  @return List of PropertyData
  @throws RepositoryException
  Repository error