opendj-core/src/main/java/org/forgerock/opendj/ldap/AttributeDescription.java
@@ -536,7 +536,7 @@ return OBJECT_CLASS; } String attributeName = attributeType.getNameOrOID(); return new AttributeDescription(attributeName, attributeName, attributeType, ZERO_OPTION_IMPL); return new AttributeDescription(attributeName, attributeName, attributeType, ZERO_OPTION_IMPL); } /** @@ -1139,6 +1139,9 @@ /** * Returns the attribute name or the oid provided by the user associated with this attribute * description. * <p> * In other words, it returns the user-provided name or oid of this attribute description, * leaving out the option(s). * * @return The attribute name or the oid provided by the user associated with this attribute * description. opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/ModifyEntryTask.java
@@ -601,9 +601,8 @@ } List<Object> oldValues = oldEntry.getAttributeValues(attrName); AttributeDescription attrDesc = AttributeDescription.valueOf(attrName); String attrNoOptions = attrDesc.getNameOrOID().toLowerCase(); List<org.opends.server.types.Attribute> attrs = newEntry.getAttribute(attrNoOptions); List<org.opends.server.types.Attribute> attrs = newEntry.getAttribute(attrDesc.getNameOrOID()); if (!find(attrs, attrName) && !oldValues.isEmpty()) { modifications.add(new ModificationItem( @@ -616,6 +615,7 @@ private static boolean find(List<org.opends.server.types.Attribute> attrs, String attrName) { // TODO JNR use Entry.hasAttribute(AttributeDescription) instead? for (org.opends.server.types.Attribute attr : attrs) { if (attr.getAttributeDescription().toString().equalsIgnoreCase(attrName)) opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/ViewEntryPanel.java
@@ -282,8 +282,9 @@ String attrName = ava.getAttributeName(); ByteString value = ava.getAttributeValue(); boolean done = false; for (org.opends.server.types.Attribute attr : entry.getAttribute(attrName.toLowerCase())) for (org.opends.server.types.Attribute attr : entry.getAttribute(attrName)) { // TODO JNR use Entry.getAttribute(AttributeDescription) instead? if (attr.getAttributeDescription().toString().equals(attrName)) { List<ByteString> newValues = getValues(attr); opendj-server-legacy/src/main/java/org/opends/server/backends/task/Task.java
@@ -34,6 +34,7 @@ import org.forgerock.i18n.slf4j.LocalizedLogger; import org.forgerock.opendj.ldap.AttributeDescription; import org.forgerock.opendj.ldap.ByteString; import org.forgerock.opendj.ldap.DN; import org.forgerock.opendj.ldap.ModificationType; import org.forgerock.opendj.ldap.schema.AttributeType; import org.opends.messages.Severity; @@ -42,7 +43,6 @@ import org.opends.server.types.Attribute; import org.opends.server.types.AttributeBuilder; import org.opends.server.types.Attributes; import org.forgerock.opendj.ldap.DN; import org.opends.server.types.DirectoryException; import org.opends.server.types.Entry; import org.opends.server.types.InitializationException; @@ -311,7 +311,7 @@ private String getAttributeValue(String attributeName, boolean isRequired) throws InitializationException { List<Attribute> attrList = taskEntry.getAttribute(attributeName.toLowerCase()); List<Attribute> attrList = taskEntry.getAttribute(attributeName); if (attrList.isEmpty()) { if (isRequired) @@ -360,7 +360,7 @@ private LinkedList<String> getAttributeValues(String attributeName) throws InitializationException { LinkedList<String> valueStrings = new LinkedList<>(); List<Attribute> attrList = taskEntry.getAttribute(attributeName.toLowerCase()); List<Attribute> attrList = taskEntry.getAttribute(attributeName); if (attrList.isEmpty()) { return valueStrings; opendj-server-legacy/src/main/java/org/opends/server/types/Entry.java
@@ -650,18 +650,16 @@ * the version of this method that takes an * <CODE>AttributeType</CODE> argument. * * @param lowerName The name or OID of the attribute to return, * formatted in all lowercase characters. * * @param nameOrOID The name or OID of the attribute to return * @return The requested attribute element(s) for the specified * attribute type, or an empty list if the specified * attribute type is not present in this entry. */ public List<Attribute> getAttribute(String lowerName) public List<Attribute> getAttribute(String nameOrOID) { for (AttributeType attr : userAttributes.keySet()) { if (attr.hasNameOrOID(lowerName)) if (attr.hasNameOrOID(nameOrOID)) { return getAttribute(attr); } @@ -669,13 +667,13 @@ for (AttributeType attr : operationalAttributes.keySet()) { if (attr.hasNameOrOID(lowerName)) if (attr.hasNameOrOID(nameOrOID)) { return getAttribute(attr); } } if (lowerName.equals(OBJECTCLASS_ATTRIBUTE_TYPE_NAME) if (CoreSchema.getObjectClassAttributeType().hasNameOrOID(nameOrOID) && !objectClasses.isEmpty()) { return newLinkedList(getObjectClassAttribute()); opendj-server-legacy/src/test/java/org/opends/server/backends/ChangelogBackendTestCase.java
@@ -1480,7 +1480,7 @@ private static String getAttributeValue(Entry entry, String attrName) { List<Attribute> attrs = entry.getAttribute(attrName.toLowerCase()); List<Attribute> attrs = entry.getAttribute(attrName); if (attrs.isEmpty()) { return null; opendj-server-legacy/src/test/java/org/opends/server/replication/InitOnLineTest.java
@@ -16,11 +16,16 @@ */ package org.opends.server.replication; import java.util.*; import java.util.Arrays; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; import java.util.UUID; import org.assertj.core.api.Assertions; import org.forgerock.i18n.LocalizableMessage; import org.forgerock.i18n.slf4j.LocalizedLogger; import org.forgerock.opendj.ldap.DN; import org.forgerock.opendj.ldap.ResultCode; import org.forgerock.opendj.ldap.SearchScope; import org.opends.server.TestCaseUtils; @@ -31,12 +36,17 @@ import org.opends.server.protocols.internal.SearchRequest; import org.opends.server.replication.common.ServerStatus; import org.opends.server.replication.plugin.LDAPReplicationDomain; import org.opends.server.replication.protocol.*; import org.opends.server.replication.protocol.DoneMsg; import org.opends.server.replication.protocol.EntryMsg; import org.opends.server.replication.protocol.ErrorMsg; import org.opends.server.replication.protocol.InitializeRequestMsg; import org.opends.server.replication.protocol.InitializeTargetMsg; import org.opends.server.replication.protocol.ReplicationMsg; import org.opends.server.replication.protocol.RoutableMsg; import org.opends.server.replication.server.ReplServerFakeConfiguration; import org.opends.server.replication.server.ReplicationServer; import org.opends.server.replication.server.ReplicationServerDomain; import org.opends.server.replication.service.ReplicationBroker; import org.forgerock.opendj.ldap.DN; import org.opends.server.types.DirectoryException; import org.opends.server.types.Entry; import org.opends.server.util.Base64; @@ -220,15 +230,13 @@ Entry resultEntry = getCompletionTime(taskEntry); // Check that the task state is as expected. String stateString = resultEntry.parseAttribute(ATTR_TASK_STATE.toLowerCase()).asString(); String stateString = resultEntry.parseAttribute(ATTR_TASK_STATE).asString(); TaskState taskState = TaskState.fromString(stateString); assertEquals(taskState, expectedState, "The task completed in an unexpected state"); // Check that the task contains some log messages. Set<String> logMessages = resultEntry.parseAttribute( ATTR_TASK_LOG_MESSAGES.toLowerCase()).asSetOfString(); Set<String> logMessages = resultEntry.parseAttribute(ATTR_TASK_LOG_MESSAGES).asSetOfString(); if (taskState != TaskState.COMPLETED_SUCCESSFULLY && logMessages.isEmpty()) { @@ -258,8 +266,7 @@ InternalSearchOperation searchOperation = connection.processSearch(request); Entry resultEntry = searchOperation.getSearchEntries().getFirst(); String completionTime = resultEntry.parseAttribute( ATTR_TASK_COMPLETION_TIME.toLowerCase()).asString(); String completionTime = resultEntry.parseAttribute(ATTR_TASK_COMPLETION_TIME).asString(); if (completionTime != null) { return resultEntry; @@ -274,10 +281,10 @@ while (true); } private void assertAttributeValue(Entry resultEntry, String lowerAttrName, private void assertAttributeValue(Entry resultEntry, String attrName, long expected, String message) throws DirectoryException { String value = resultEntry.parseAttribute(lowerAttrName).asString(); String value = resultEntry.parseAttribute(attrName).asString(); assertEquals(Long.decode(value).longValue(), expected, message); } opendj-server-legacy/src/test/java/org/opends/server/replication/ReplicationTestCase.java
@@ -621,18 +621,14 @@ InternalSearchOperation searchOperation = connection.processSearch(request); Assertions.assertThat(searchOperation.getSearchEntries()).isNotEmpty(); Entry resultEntry = searchOperation.getSearchEntries().get(0); String completionTime = resultEntry.parseAttribute( ATTR_TASK_COMPLETION_TIME.toLowerCase()).asString(); String completionTime = resultEntry.parseAttribute(ATTR_TASK_COMPLETION_TIME).asString(); assertNotNull(completionTime, "The task has not completed"); return resultEntry; } }); // Check that the task state is as expected. String stateString = resultEntry.parseAttribute( ATTR_TASK_STATE.toLowerCase()).asString(); TaskState taskState = TaskState.fromString(stateString); assertEquals(taskState, TaskState.COMPLETED_SUCCESSFULLY, assertEquals(getTaskState(resultEntry), TaskState.COMPLETED_SUCCESSFULLY, "The task completed in an unexpected state"); } @@ -715,8 +711,7 @@ }); // Check that the task contains some log messages. Set<String> logMessages = resultEntry.parseAttribute( ATTR_TASK_LOG_MESSAGES.toLowerCase()).asSetOfString(); Set<String> logMessages = resultEntry.parseAttribute(ATTR_TASK_LOG_MESSAGES).asSetOfString(); TaskState taskState = getTaskState(resultEntry); if (taskState != COMPLETED_SUCCESSFULLY && taskState != RUNNING) @@ -748,10 +743,9 @@ } } private TaskState getTaskState(Entry resultEntry) private TaskState getTaskState(Entry entry) { String stateString = resultEntry.parseAttribute(ATTR_TASK_STATE.toLowerCase()).asString(); return TaskState.fromString(stateString); return TaskState.fromString(entry.parseAttribute(ATTR_TASK_STATE).asString()); } /** Add to the current DB the entries necessary to the test. */ opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/AttrHistoricalSingleTest.java
@@ -18,7 +18,6 @@ import static org.assertj.core.api.Assertions.*; import static org.forgerock.opendj.ldap.ModificationType.*; import static org.mockito.Mockito.*; import static org.opends.server.util.StaticUtils.*; import static org.testng.Assert.*; import java.util.Iterator; @@ -383,7 +382,7 @@ private void assertAttributeValue(Entry entry, String expectedValue) { ByteString actualValue = getActualValue(entry.getAttribute(toLowerCase(ATTRIBUTE_NAME))); ByteString actualValue = getActualValue(entry.getAttribute(ATTRIBUTE_NAME)); assertEquals(actualValue, expectedValue != null ? ByteString.valueOfUtf8(expectedValue) : null); } opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/FractionalReplicationTest.java
@@ -757,7 +757,7 @@ */ private static void checkEntryAttributeValue(Entry entry, String attributeName, String attributeValue) { List<Attribute> attrs = entry.getAttribute(attributeName.toLowerCase()); List<Attribute> attrs = entry.getAttribute(attributeName); assertThat(attrs).as("Was expecting attribute " + attributeName + "=" + attributeValue).hasSize(1); Attribute attr = attrs.get(0); Iterator<ByteString> attrValues = attr.iterator(); opendj-server-legacy/src/test/java/org/opends/server/tasks/TasksTestCase.java
@@ -19,6 +19,7 @@ import java.util.Set; import java.util.concurrent.Callable; import org.forgerock.opendj.ldap.DN; import org.forgerock.opendj.ldap.ResultCode; import org.forgerock.opendj.ldap.SearchScope; import org.opends.server.DirectoryServerTestCase; @@ -29,8 +30,6 @@ import org.opends.server.core.DirectoryServer; import org.opends.server.protocols.internal.InternalSearchOperation; import org.opends.server.protocols.internal.SearchRequest; import org.opends.server.types.AttributeParser; import org.forgerock.opendj.ldap.DN; import org.opends.server.types.Entry; import org.opends.server.util.TestTimer; import org.testng.annotations.Test; @@ -62,13 +61,13 @@ // Check that the task state is as expected. Entry resultEntry = getCompletedTaskEntry(taskEntry.getName(), timeoutInSec); String stateString = parseAttribute(resultEntry, ATTR_TASK_STATE).asString(); String stateString = resultEntry.parseAttribute(ATTR_TASK_STATE).asString(); TaskState taskState = TaskState.fromString(stateString); assertEquals(taskState, expectedState, "The task completed in an unexpected state"); // Check that the task contains some log messages. Set<String> logMessages = parseAttribute(resultEntry, ATTR_TASK_LOG_MESSAGES).asSetOfString(); Set<String> logMessages = resultEntry.parseAttribute(ATTR_TASK_LOG_MESSAGES).asSetOfString(); assertTrue(taskState == TaskState.COMPLETED_SUCCESSFULLY || !logMessages.isEmpty(), "No log messages were written to the task entry on a failed task.\n" + "taskState=" + taskState @@ -90,7 +89,7 @@ { InternalSearchOperation searchOperation = getRootConnection().processSearch(request); Entry resultEntry = searchOperation.getSearchEntries().getFirst(); String completionTime = parseAttribute(resultEntry, ATTR_TASK_COMPLETION_TIME).asString(); String completionTime = resultEntry.parseAttribute(ATTR_TASK_COMPLETION_TIME).asString(); assertNotNull(completionTime, "The task had not completed after " + timeoutInSec + " seconds.\nresultEntry=[" + resultEntry + "]"); return resultEntry; @@ -98,11 +97,6 @@ }); } private AttributeParser parseAttribute(Entry resultEntry, String attrName) { return resultEntry.parseAttribute(attrName.toLowerCase()); } /** * Retrieves the specified task from the server, regardless of its current * state.