opends/src/server/org/opends/server/core/SearchOperationBasis.java
@@ -27,9 +27,6 @@ */ package org.opends.server.core; import org.opends.messages.MessageBuilder; import org.opends.messages.Message; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashSet; @@ -38,6 +35,8 @@ import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import org.opends.messages.Message; import org.opends.messages.MessageBuilder; import org.opends.server.api.AuthenticationPolicyState; import org.opends.server.api.ClientConnection; import org.opends.server.api.plugin.PluginResult; @@ -54,12 +53,12 @@ import org.opends.server.types.operation.SearchReferenceSearchOperation; import org.opends.server.util.TimeThread; import static org.opends.server.core.CoreConstants.*; import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; import static org.opends.server.loggers.AccessLogger.*; import static org.opends.messages.CoreMessages.*; import static org.opends.server.util.StaticUtils.toLowerCase; import static org.opends.server.core.CoreConstants.*; import static org.opends.server.loggers.AccessLogger.*; import static org.opends.server.loggers.debug.DebugLogger.*; import static org.opends.server.util.ServerConstants.*; import static org.opends.server.util.StaticUtils.*; /** * This class defines an operation that may be used to locate entries in the @@ -78,86 +77,98 @@ */ private static final DebugTracer TRACER = DebugLogger.getTracer(); // Indicates whether a search result done response has been sent to the // client. /** * Indicates whether a search result done response has been sent to the * client. */ private AtomicBoolean responseSent; // Indicates whether the client is able to handle referrals. /** Indicates whether the client is able to handle referrals. */ private boolean clientAcceptsReferrals; // Indicates whether to include the account usable control with search result // entries. /** * Indicates whether to include the account usable control with search result * entries. */ private boolean includeUsableControl; // Indicates whether to only real attributes should be returned. /** Indicates whether to only real attributes should be returned. */ private boolean realAttributesOnly; // Indicates whether only LDAP subentries should be returned. /** Indicates whether only LDAP subentries should be returned. */ private boolean returnSubentriesOnly; // Indicates whether the filter references subentry or ldapSubentry object // class. /** * Indicates whether the filter references subentry or ldapSubentry object * class. */ private boolean filterIncludesSubentries; private boolean filterNeedsCheckingForSubentries = true; // Indicates whether to include attribute types only or both types and values. /** * Indicates whether to include attribute types only or both types and values. */ private boolean typesOnly; // Indicates whether to only virtual attributes should be returned. /** Indicates whether to only virtual attributes should be returned. */ private boolean virtualAttributesOnly; // The raw, unprocessed base DN as included in the request from the client. /** * The raw, unprocessed base DN as included in the request from the client. */ private ByteString rawBaseDN; // The dereferencing policy for the search operation. /** The dereferencing policy for the search operation. */ private DereferencePolicy derefPolicy; // The base DN for the search operation. /** The base DN for the search operation. */ private DN baseDN; // The proxied authorization target DN for this operation. /** The proxied authorization target DN for this operation. */ private DN proxiedAuthorizationDN; // The number of entries that have been sent to the client. /** The number of entries that have been sent to the client. */ private int entriesSent; // The number of search result references that have been sent to the client. /** * The number of search result references that have been sent to the client. */ private int referencesSent; // The size limit for the search operation. /** The size limit for the search operation. */ private int sizeLimit; // The time limit for the search operation. /** The time limit for the search operation. */ private int timeLimit; // The raw, unprocessed filter as included in the request from the client. /** The raw, unprocessed filter as included in the request from the client. */ private RawFilter rawFilter; // The set of attributes that should be returned in matching entries. /** The set of attributes that should be returned in matching entries. */ private Set<String> attributes; // The set of response controls for this search operation. /** The set of response controls for this search operation. */ private List<Control> responseControls; // The time that processing started on this operation. /** The time that processing started on this operation. */ private long processingStartTime; // The time that processing ended on this operation. /** The time that processing ended on this operation. */ private long processingStopTime; // The time that the search time limit has expired. /** The time that the search time limit has expired. */ private long timeLimitExpiration; // The matched values control associated with this search operation. /** The matched values control associated with this search operation. */ private MatchedValuesControl matchedValuesControl; // The search filter for the search operation. /** The search filter for the search operation. */ private SearchFilter filter; // The search scope for the search operation. /** The search scope for the search operation. */ private SearchScope scope; // Indicates wether to send the search result done to the client or not /** Indicates whether to send the search result done to the client or not. */ private boolean sendResponse = true; /** @@ -188,7 +199,7 @@ ByteString rawBaseDN, SearchScope scope, DereferencePolicy derefPolicy, int sizeLimit, int timeLimit, boolean typesOnly, RawFilter rawFilter, LinkedHashSet<String> attributes) Set<String> attributes) { super(clientConnection, operationID, messageID, requestControls); @@ -287,7 +298,7 @@ DN baseDN, SearchScope scope, DereferencePolicy derefPolicy, int sizeLimit, int timeLimit, boolean typesOnly, SearchFilter filter, LinkedHashSet<String> attributes) Set<String> attributes) { super(clientConnection, operationID, messageID, requestControls); @@ -363,6 +374,7 @@ /** * {@inheritDoc} */ @Override public final ByteString getRawBaseDN() { return rawBaseDN; @@ -373,6 +385,7 @@ /** * {@inheritDoc} */ @Override public final void setRawBaseDN(ByteString rawBaseDN) { this.rawBaseDN = rawBaseDN; @@ -384,6 +397,7 @@ /** * {@inheritDoc} */ @Override public final DN getBaseDN() { try @@ -412,6 +426,7 @@ /** * {@inheritDoc} */ @Override public final void setBaseDN(DN baseDN) { this.baseDN = baseDN; @@ -420,6 +435,7 @@ /** * {@inheritDoc} */ @Override public final SearchScope getScope() { return scope; @@ -428,6 +444,7 @@ /** * {@inheritDoc} */ @Override public final void setScope(SearchScope scope) { this.scope = scope; @@ -436,6 +453,7 @@ /** * {@inheritDoc} */ @Override public final DereferencePolicy getDerefPolicy() { return derefPolicy; @@ -444,6 +462,7 @@ /** * {@inheritDoc} */ @Override public final void setDerefPolicy(DereferencePolicy derefPolicy) { this.derefPolicy = derefPolicy; @@ -452,6 +471,7 @@ /** * {@inheritDoc} */ @Override public final int getSizeLimit() { return sizeLimit; @@ -460,6 +480,7 @@ /** * {@inheritDoc} */ @Override public final void setSizeLimit(int sizeLimit) { this.sizeLimit = sizeLimit; @@ -468,6 +489,7 @@ /** * {@inheritDoc} */ @Override public final int getTimeLimit() { return timeLimit; @@ -476,6 +498,7 @@ /** * {@inheritDoc} */ @Override public final void setTimeLimit(int timeLimit) { this.timeLimit = timeLimit; @@ -484,6 +507,7 @@ /** * {@inheritDoc} */ @Override public final boolean getTypesOnly() { return typesOnly; @@ -492,6 +516,7 @@ /** * {@inheritDoc} */ @Override public final void setTypesOnly(boolean typesOnly) { this.typesOnly = typesOnly; @@ -500,6 +525,7 @@ /** * {@inheritDoc} */ @Override public final RawFilter getRawFilter() { return rawFilter; @@ -508,6 +534,7 @@ /** * {@inheritDoc} */ @Override public final void setRawFilter(RawFilter rawFilter) { this.rawFilter = rawFilter; @@ -518,6 +545,7 @@ /** * {@inheritDoc} */ @Override public final SearchFilter getFilter() { try @@ -545,6 +573,7 @@ /** * {@inheritDoc} */ @Override public final Set<String> getAttributes() { return attributes; @@ -553,6 +582,7 @@ /** * {@inheritDoc} */ @Override public final void setAttributes(Set<String> attributes) { if (attributes == null) @@ -568,6 +598,7 @@ /** * {@inheritDoc} */ @Override public final int getEntriesSent() { return entriesSent; @@ -576,6 +607,7 @@ /** * {@inheritDoc} */ @Override public final int getReferencesSent() { return referencesSent; @@ -584,6 +616,7 @@ /** * {@inheritDoc} */ @Override public final boolean returnEntry(Entry entry, List<Control> controls) { return returnEntry(entry, controls, true); @@ -592,6 +625,7 @@ /** * {@inheritDoc} */ @Override public final boolean returnEntry(Entry entry, List<Control> controls, boolean evaluateAci) { @@ -856,6 +890,7 @@ /** * {@inheritDoc} */ @Override public final boolean returnReference(DN dn, SearchResultReference reference) { return returnReference(dn, reference, true); @@ -864,6 +899,7 @@ /** * {@inheritDoc} */ @Override public final boolean returnReference(DN dn, SearchResultReference reference, boolean evaluateAci) { @@ -944,6 +980,7 @@ /** * {@inheritDoc} */ @Override public final void sendSearchResultDone() { // Send the search result done message to the client. We want to make sure @@ -1087,6 +1124,7 @@ /** * {@inheritDoc} */ @Override public DN getProxiedAuthorizationDN() { return proxiedAuthorizationDN; @@ -1157,6 +1195,7 @@ /** * {@inheritDoc} */ @Override public void setTimeLimitExpiration(Long timeLimitExpiration){ this.timeLimitExpiration = timeLimitExpiration; } @@ -1164,6 +1203,7 @@ /** * {@inheritDoc} */ @Override public boolean isReturnSubentriesOnly() { return returnSubentriesOnly; @@ -1172,6 +1212,7 @@ /** * {@inheritDoc} */ @Override public void setReturnSubentriesOnly(boolean returnLDAPSubentries) { this.returnSubentriesOnly = returnLDAPSubentries; @@ -1180,6 +1221,7 @@ /** * {@inheritDoc} */ @Override public MatchedValuesControl getMatchedValuesControl() { return matchedValuesControl; @@ -1188,6 +1230,7 @@ /** * {@inheritDoc} */ @Override public void setMatchedValuesControl(MatchedValuesControl controls) { this.matchedValuesControl = controls; @@ -1196,6 +1239,7 @@ /** * {@inheritDoc} */ @Override public boolean isIncludeUsableControl() { return includeUsableControl; @@ -1204,6 +1248,7 @@ /** * {@inheritDoc} */ @Override public void setIncludeUsableControl(boolean includeUsableControl) { this.includeUsableControl = includeUsableControl; @@ -1212,6 +1257,7 @@ /** * {@inheritDoc} */ @Override public Long getTimeLimitExpiration() { return timeLimitExpiration; @@ -1220,6 +1266,7 @@ /** * {@inheritDoc} */ @Override public boolean isClientAcceptsReferrals() { return clientAcceptsReferrals; @@ -1228,6 +1275,7 @@ /** * {@inheritDoc} */ @Override public void setClientAcceptsReferrals(boolean clientAcceptReferrals) { this.clientAcceptsReferrals = clientAcceptReferrals; @@ -1236,6 +1284,7 @@ /** * {@inheritDoc} */ @Override public void incrementEntriesSent() { entriesSent++; @@ -1244,6 +1293,7 @@ /** * {@inheritDoc} */ @Override public void incrementReferencesSent() { referencesSent++; @@ -1252,6 +1302,7 @@ /** * {@inheritDoc} */ @Override public boolean isSendResponse() { return sendResponse; @@ -1260,15 +1311,16 @@ /** * {@inheritDoc} */ @Override public void setSendResponse(boolean sendResponse) { this.sendResponse = sendResponse; } /** * {@inheritDoc} */ @Override public boolean isRealAttributesOnly() { return this.realAttributesOnly; @@ -1277,6 +1329,7 @@ /** * {@inheritDoc} */ @Override public boolean isVirtualAttributesOnly() { return this.virtualAttributesOnly; @@ -1285,6 +1338,7 @@ /** * {@inheritDoc} */ @Override public void setRealAttributesOnly(boolean realAttributesOnly) { this.realAttributesOnly = realAttributesOnly; @@ -1293,6 +1347,7 @@ /** * {@inheritDoc} */ @Override public void setVirtualAttributesOnly(boolean virtualAttributesOnly) { this.virtualAttributesOnly = virtualAttributesOnly; @@ -1301,17 +1356,19 @@ /** * {@inheritDoc} */ @Override public void sendSearchEntry(SearchResultEntry searchEntry) throws DirectoryException { throws DirectoryException { getClientConnection().sendSearchEntry(this, searchEntry); } /** * {@inheritDoc} */ @Override public boolean sendSearchReference(SearchResultReference searchReference) throws DirectoryException throws DirectoryException { return getClientConnection().sendSearchReference(this, searchReference); } @@ -1319,6 +1376,7 @@ /** * {@inheritDoc} */ @Override public void setProxiedAuthorizationDN(DN proxiedAuthorizationDN) { this.proxiedAuthorizationDN = proxiedAuthorizationDN; opends/src/server/org/opends/server/protocols/internal/InternalSearchOperation.java
@@ -23,6 +23,7 @@ * * * Copyright 2006-2008 Sun Microsystems, Inc. * Portions Copyright 2013 ForgeRock AS */ package org.opends.server.protocols.internal; @@ -31,6 +32,7 @@ import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; import java.util.Set; import org.opends.server.api.ClientConnection; import org.opends.server.core.SearchOperationBasis; @@ -62,14 +64,13 @@ public final class InternalSearchOperation extends SearchOperationBasis { // The internal search listener for this search, if one was // provided. /** The internal search listener for this search, if one was provided. */ private InternalSearchListener searchListener; // The set of matching entries returned for this search. /** The set of matching entries returned for this search. */ private LinkedList<SearchResultEntry> entryList; // The set of search references returned for this search. /** The set of search references returned for this search. */ private LinkedList<SearchResultReference> referenceList; @@ -113,7 +114,7 @@ List<Control> requestControls, ByteString rawBaseDN, SearchScope scope, DereferencePolicy derefPolicy, int sizeLimit, int timeLimit, boolean typesOnly, RawFilter rawFilter, LinkedHashSet<String> attributes, RawFilter rawFilter, Set<String> attributes, InternalSearchListener searchListener) { super(internalConnection, operationID, messageID, requestControls, opends/src/server/org/opends/server/protocols/ldap/AddRequestProtocolOp.java
@@ -23,29 +23,26 @@ * * * Copyright 2006-2008 Sun Microsystems, Inc. * Portions Copyright 2013 ForgeRock AS */ package org.opends.server.protocols.ldap; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.io.IOException; import org.opends.server.protocols.asn1.*; import org.opends.server.types.RawAttribute; import org.opends.server.loggers.debug.DebugTracer; import org.opends.server.protocols.asn1.ASN1Writer; import org.opends.server.types.ByteString; import org.opends.server.types.RawAttribute; import org.opends.server.util.Base64; import static org.opends.server.loggers.debug.DebugLogger.*; import org.opends.server.loggers.debug.DebugTracer; import static org.opends.server.protocols.ldap.LDAPConstants.*; import static org.opends.server.util.ServerConstants.*; import static org.opends.server.util.StaticUtils.*; /** * This class defines the structures and methods for an LDAP add request * protocol op, which is used to add a new entry to the Directory Server. @@ -58,10 +55,10 @@ */ private static final DebugTracer TRACER = getTracer(); // The set of attributes for this add request. /** The set of attributes for this add request. */ private List<RawAttribute> attributes; // The DN for this add request. /** The DN for this add request. */ private ByteString dn; @@ -87,8 +84,7 @@ * @param dn The DN for this add request. * @param attributes The set of attributes for this add request. */ public AddRequestProtocolOp(ByteString dn, ArrayList<RawAttribute> attributes) public AddRequestProtocolOp(ByteString dn, List<RawAttribute> attributes) { this.dn = dn; @@ -133,6 +129,7 @@ * * @return The BER type for this protocol op. */ @Override public byte getType() { return OP_TYPE_ADD_REQUEST; @@ -145,6 +142,7 @@ * * @return The name for this protocol op type. */ @Override public String getProtocolOpName() { return "Add Request"; @@ -156,6 +154,7 @@ * @param stream The ASN.1 output stream to write to. * @throws IOException If a problem occurs while writing to the stream. */ @Override public void write(ASN1Writer stream) throws IOException { stream.writeStartSequence(OP_TYPE_ADD_REQUEST); @@ -180,6 +179,7 @@ * * @param buffer The buffer to which the string should be appended. */ @Override public void toString(StringBuilder buffer) { buffer.append("AddRequest(dn="); @@ -211,6 +211,7 @@ * @param indent The number of spaces from the margin that the lines should * be indented. */ @Override public void toString(StringBuilder buffer, int indent) { StringBuilder indentBuf = new StringBuilder(indent); opends/src/server/org/opends/server/protocols/ldap/ModifyRequestProtocolOp.java
@@ -23,24 +23,24 @@ * * * Copyright 2006-2008 Sun Microsystems, Inc. * Portions Copyright 2013 ForgeRock AS */ package org.opends.server.protocols.ldap; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.io.IOException; import java.util.List; import org.opends.server.protocols.asn1.*; import org.opends.server.types.RawModification; import org.opends.server.loggers.debug.DebugTracer; import org.opends.server.protocols.asn1.ASN1Writer; import org.opends.server.types.ByteString; import org.opends.server.types.RawModification; import static org.opends.server.loggers.debug.DebugLogger.*; import org.opends.server.loggers.debug.DebugTracer; import static org.opends.server.protocols.ldap.LDAPConstants.*; import static org.opends.server.util.ServerConstants.*; /** * This class defines the structures and methods for an LDAP modify request * protocol op, which is used to alter the contents of an entry in the Directory @@ -54,10 +54,10 @@ */ private static final DebugTracer TRACER = getTracer(); // The set of modifications for this modify request. private ArrayList<RawModification> modifications; /** The set of modifications for this modify request. */ private List<RawModification> modifications; // The DN for this modify request. /** The DN for this modify request. */ private ByteString dn; @@ -84,7 +84,7 @@ * @param modifications The set of modifications for this modify request. */ public ModifyRequestProtocolOp(ByteString dn, ArrayList<RawModification> modifications) List<RawModification> modifications) { this.dn = dn; @@ -118,7 +118,7 @@ * * @return The set of modifications for this modify request. */ public ArrayList<RawModification> getModifications() public List<RawModification> getModifications() { return modifications; } @@ -130,6 +130,7 @@ * * @return The BER type for this protocol op. */ @Override public byte getType() { return OP_TYPE_MODIFY_REQUEST; @@ -142,6 +143,7 @@ * * @return The name for this protocol op type. */ @Override public String getProtocolOpName() { return "Modify Request"; @@ -153,6 +155,7 @@ * @param stream The ASN.1 output stream to write to. * @throws IOException If a problem occurs while writing to the stream. */ @Override public void write(ASN1Writer stream) throws IOException { stream.writeStartSequence(OP_TYPE_MODIFY_REQUEST); @@ -176,6 +179,7 @@ * * @param buffer The buffer to which the string should be appended. */ @Override public void toString(StringBuilder buffer) { buffer.append("ModifyRequest(dn="); @@ -207,6 +211,7 @@ * @param indent The number of spaces from the margin that the lines should * be indented. */ @Override public void toString(StringBuilder buffer, int indent) { StringBuilder indentBuf = new StringBuilder(indent); opends/src/server/org/opends/server/protocols/ldap/SearchRequestProtocolOp.java
@@ -23,24 +23,26 @@ * * * Copyright 2006-2008 Sun Microsystems, Inc. * Portions Copyright 2013 ForgeRock AS */ package org.opends.server.protocols.ldap; import java.io.IOException; import java.util.Iterator; import java.util.LinkedHashSet; import java.io.IOException; import java.util.Set; import org.opends.server.protocols.asn1.*; import org.opends.server.types.*; import org.opends.server.loggers.debug.DebugTracer; import org.opends.server.protocols.asn1.ASN1Writer; import org.opends.server.types.ByteString; import org.opends.server.types.DereferencePolicy; import org.opends.server.types.RawFilter; import org.opends.server.types.SearchScope; import static org.opends.server.loggers.debug.DebugLogger.*; import org.opends.server.loggers.debug.DebugTracer; import static org.opends.server.protocols.ldap.LDAPConstants.*; import static org.opends.server.util.ServerConstants.*; /** * This class defines the structures and methods for an LDAP search request * protocol op, which is used to locate entries based on a set of criteria. @@ -53,28 +55,28 @@ */ private static final DebugTracer TRACER = getTracer(); // The typesOnly flag for this search request. /** The typesOnly flag for this search request. */ private boolean typesOnly; // The alias dereferencing policy for this search request. /** The alias dereferencing policy for this search request. */ private DereferencePolicy dereferencePolicy; // The base DN for this search request. /** The base DN for this search request. */ private ByteString baseDN; // The size limit for this search request. /** The size limit for this search request. */ private int sizeLimit; // The time limit for this search request. /** The time limit for this search request. */ private int timeLimit; // The filter for this search request. /** The filter for this search request. */ private RawFilter filter; // The set of requested attributes for this search request. private LinkedHashSet<String> attributes; /** The set of requested attributes for this search request. */ private Set<String> attributes; // The scope for this search request. /** The scope for this search request. */ private SearchScope scope; @@ -97,7 +99,7 @@ DereferencePolicy dereferencePolicy, int sizeLimit, int timeLimit, boolean typesOnly, RawFilter filter, LinkedHashSet<String> attributes) Set<String> attributes) { this.baseDN = baseDN; this.scope = scope; @@ -207,7 +209,7 @@ * * @return The set of requested attributes for this search request. */ public LinkedHashSet<String> getAttributes() public Set<String> getAttributes() { return attributes; } @@ -219,6 +221,7 @@ * * @return The BER type for this protocol op. */ @Override public byte getType() { return OP_TYPE_SEARCH_REQUEST; @@ -231,6 +234,7 @@ * * @return The name for this protocol op type. */ @Override public String getProtocolOpName() { return "Search Request"; @@ -242,6 +246,7 @@ * @param stream The ASN.1 output stream to write to. * @throws IOException If a problem occurs while writing to the stream. */ @Override public void write(ASN1Writer stream) throws IOException { stream.writeStartSequence(OP_TYPE_SEARCH_REQUEST); @@ -271,6 +276,7 @@ * * @param buffer The buffer to which the string should be appended. */ @Override public void toString(StringBuilder buffer) { buffer.append("SearchRequest(baseDN="); @@ -314,6 +320,7 @@ * @param indent The number of spaces from the margin that the lines should * be indented. */ @Override public void toString(StringBuilder buffer, int indent) { StringBuilder indentBuf = new StringBuilder(indent); opends/tests/unit-tests-testng/src/server/org/opends/server/protocols/ldap/TestModifyRequestProtocolOp.java
@@ -23,21 +23,25 @@ * * * Copyright 2006-2008 Sun Microsystems, Inc. * Portions Copyright 2013 ForgeRock AS */ package org.opends.server.protocols.ldap; import static org.opends.server.util.ServerConstants.EOL; import org.opends.server.types.*; import org.opends.server.protocols.asn1.ASN1Writer; import org.opends.server.protocols.asn1.ASN1; import org.opends.server.protocols.asn1.ASN1Reader; import org.testng.annotations.Test; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; import static org.opends.server.util.ServerConstants.*; import static org.testng.Assert.*; import java.util.ArrayList; import java.util.Random; import java.util.List; import org.opends.server.protocols.asn1.ASN1; import org.opends.server.protocols.asn1.ASN1Reader; import org.opends.server.protocols.asn1.ASN1Writer; import org.opends.server.types.ByteString; import org.opends.server.types.ByteStringBuilder; import org.opends.server.types.LDAPException; import org.opends.server.types.ModificationType; import org.opends.server.types.RawModification; import org.testng.annotations.Test; /** * This class defines a set of tests for the @@ -81,18 +85,15 @@ * @return The generate attributes. * */ private ArrayList<RawModification> generateModifications(int numAttributes, private List<RawModification> generateModifications(int numAttributes, String prefix) { ArrayList<RawModification> modifies = new ArrayList<RawModification>(); LDAPAttribute attribute; List<RawModification> modifies = new ArrayList<RawModification>(); ModificationType modificationType; Random randomGenerator = new Random(0); int i, j; for(i = 0; i < numAttributes; i++) for(int i = 0; i < numAttributes; i++) { attribute = new LDAPAttribute("testAttribute"+i); LDAPAttribute attribute = new LDAPAttribute("testAttribute" + i); switch(i % 4) { case 0 : modificationType = ModificationType.ADD; @@ -112,22 +113,18 @@ return modifies; } private Boolean modificationsEquals(ArrayList<RawModification> modifies1, ArrayList<RawModification> modifies2) private Boolean modificationsEquals(List<RawModification> modifies1, List<RawModification> modifies2) { if(modifies1.size() != modifies2.size()) { return false; } int i, j; RawModification modify1; RawModification modify2; for(i = 0; i < modifies1.size(); i++) for(int i = 0; i < modifies1.size(); i++) { modify1 = modifies1.get(i); modify2 = modifies2.get(i); RawModification modify1 = modifies1.get(i); RawModification modify2 = modifies2.get(i); if(!modify1.getAttribute().getAttributeType().equals( modify2.getAttribute().getAttributeType())) { @@ -179,7 +176,7 @@ public void testConstructors() throws Exception { ModifyRequestProtocolOp modifyRequest; ArrayList<RawModification> modifications; List<RawModification> modifications; //Test to make sure the constructor with dn param works. modifyRequest = new ModifyRequestProtocolOp(dn); @@ -280,13 +277,12 @@ ByteStringBuilder builder = new ByteStringBuilder(); ASN1Writer writer = ASN1.getWriter(builder); ModifyRequestProtocolOp modifyEncoded; ModifyRequestProtocolOp modifyDecoded; modifyEncoded = new ModifyRequestProtocolOp(null, null); modifyEncoded.write(writer); ASN1Reader reader = ASN1.getReader(builder.toByteString()); modifyDecoded = (ModifyRequestProtocolOp)LDAPReader.readProtocolOp(reader); LDAPReader.readProtocolOp(reader); } /** @@ -301,7 +297,7 @@ ASN1Writer writer = ASN1.getWriter(builder); ModifyRequestProtocolOp modifyEncoded; ModifyRequestProtocolOp modifyDecoded; ArrayList<RawModification> modifies; List<RawModification> modifies; //Test case for a full encode decode operation with normal params. @@ -348,20 +344,17 @@ @Test public void TestToStringSingleLine() throws Exception { ModifyRequestProtocolOp modifyRequest; ArrayList<RawModification> modifications; StringBuilder buffer = new StringBuilder(); StringBuilder key = new StringBuilder(); int i; int numModifications; numModifications = 10; modifications = generateModifications(numModifications, "test"); modifyRequest = new ModifyRequestProtocolOp(dn, modifications); int numModifications = 10; List<RawModification> modifications = generateModifications(numModifications, "test"); ModifyRequestProtocolOp modifyRequest = new ModifyRequestProtocolOp(dn, modifications); modifyRequest.toString(buffer); key.append("ModifyRequest(dn="+dn+", mods={"); for(i = 0; i < numModifications; i++) for (int i = 0; i < numModifications; i++) { modifications.get(i).toString(key); if(i < numModifications - 1) @@ -382,21 +375,19 @@ @Test public void TestToStringMultiLine() throws Exception { ModifyRequestProtocolOp modifyRequest; ArrayList<RawModification> modifications; StringBuilder buffer = new StringBuilder(); StringBuilder key = new StringBuilder(); int i; int numModifications, indent; numModifications = 10; indent = 5; modifications = generateModifications(numModifications, "test"); modifyRequest = new ModifyRequestProtocolOp(dn, modifications); int numModifications = 10; int indent = 5; List<RawModification> modifications = generateModifications(numModifications, "test"); ModifyRequestProtocolOp modifyRequest = new ModifyRequestProtocolOp(dn, modifications); modifyRequest.toString(buffer, indent); StringBuilder indentBuf = new StringBuilder(indent); for (i=0 ; i < indent; i++) for (int i = 0; i < indent; i++) { indentBuf.append(' '); }