mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Matthew Swift
08.50.2016 65f47d9c24da91fdeac1eb6f012f44cc056ac4e4
opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/ReferencePropertyMapper.java
@@ -72,18 +72,19 @@
     */
    private static final int SEARCH_MAX_CANDIDATES = 1000;
    private final DN baseDn;
    private final DnTemplate baseDnTemplate;
    private final Schema schema;
    private Filter filter;
    private final PropertyMapper mapper;
    private final AttributeDescription primaryKey;
    private SearchScope scope = SearchScope.WHOLE_SUBTREE;
    ReferencePropertyMapper(final Schema schema, final AttributeDescription ldapAttributeName, final DN baseDn,
                            final AttributeDescription primaryKey, final PropertyMapper mapper) {
    ReferencePropertyMapper(final Schema schema, final AttributeDescription ldapAttributeName,
                            final String baseDnTemplate, final AttributeDescription primaryKey,
                            final PropertyMapper mapper) {
        super(ldapAttributeName);
        this.schema = schema;
        this.baseDn = baseDn;
        this.baseDnTemplate = DnTemplate.compile(baseDnTemplate);
        this.primaryKey = primaryKey;
        this.mapper = mapper;
    }
@@ -144,7 +145,7 @@
                    @Override
                    public Promise<Filter, ResourceException> apply(final Filter result) {
                        // Search for all referenced entries and construct a filter.
                        final SearchRequest request = createSearchRequest(result);
                        final SearchRequest request = createSearchRequest(context, result);
                        final List<Filter> subFilters = new LinkedList<>();
                        return connectionFrom(context).searchAsync(request, new SearchResultHandler() {
@@ -224,7 +225,7 @@
                          // Now search for the referenced entry in to get its DN.
                          final ByteString primaryKeyValue = primaryKeyAttribute.firstValue();
                          final Filter filter = Filter.equality(primaryKey.toString(), primaryKeyValue);
                          final SearchRequest search = createSearchRequest(filter);
                          final SearchRequest search = createSearchRequest(context, filter);
                          connectionFrom(context).searchSingleEntryAsync(search)
                                    .thenOnResult(new ResultHandler<SearchResultEntry>() {
                                        @Override
@@ -325,9 +326,9 @@
        }
    }
    private SearchRequest createSearchRequest(final Filter result) {
    private SearchRequest createSearchRequest(final Context context, final Filter result) {
        final Filter searchFilter = filter != null ? Filter.and(filter, result) : result;
        return newSearchRequest(baseDn, scope, searchFilter, "1.1");
        return newSearchRequest(baseDnTemplate.format(context), scope, searchFilter, "1.1");
    }
    private Promise<JsonValue, ResourceException> readEntry(