code: @Override
  	public <T> T lookup(final Name dn, final String[] attributes, final ContextMapper<T> mapper) {
  		return executeReadOnly(new ContextExecutor<T>() {
  			public T executeWithContext(DirContext ctx) throws javax.naming.NamingException {
  				Attributes filteredAttributes = ctx.getAttributes(dn, attributes);
  				DirContextAdapter contextAdapter = new DirContextAdapter(filteredAttributes, dn);
  				return mapper.mapFromContext(contextAdapter);
  			}
  		});
  	}
docs: {@inheritDoc}