| | |
| | | protected boolean noOp; |
| | | |
| | | /** |
| | | * Indicates whether the request included the Permissive Modify control. |
| | | */ |
| | | protected boolean permissiveModify = false; |
| | | |
| | | /** |
| | | * Indicates whether this modify operation includees a password change. |
| | | */ |
| | | protected boolean passwordChanged; |
| | |
| | | public void addModification(Modification modification) |
| | | throws DirectoryException |
| | | { |
| | | modifiedEntry.applyModification(modification); |
| | | modifiedEntry.applyModification(modification, permissiveModify); |
| | | super.addModification(modification); |
| | | } |
| | | |
| | |
| | | { |
| | | noOp = true; |
| | | } |
| | | else if (oid.equals(OID_PERMISSIVE_MODIFY_CONTROL)) |
| | | { |
| | | permissiveModify = true; |
| | | } |
| | | else if (oid.equals(OID_LDAP_READENTRY_PREREAD)) |
| | | { |
| | | preReadRequest = |
| | |
| | | LinkedList<AttributeValue> duplicateValues = |
| | | new LinkedList<AttributeValue>(); |
| | | modifiedEntry.addAttribute(attr, duplicateValues); |
| | | if (!duplicateValues.isEmpty()) |
| | | if (!duplicateValues.isEmpty() && !permissiveModify) |
| | | { |
| | | StringBuilder buffer = new StringBuilder(); |
| | | Iterator<AttributeValue> iterator = duplicateValues.iterator(); |
| | |
| | | } |
| | | else |
| | | { |
| | | StringBuilder buffer = new StringBuilder(); |
| | | Iterator<AttributeValue> iterator = missingValues.iterator(); |
| | | buffer.append(iterator.next().getValue().toString()); |
| | | while (iterator.hasNext()) |
| | | if (! permissiveModify) |
| | | { |
| | | buffer.append(", "); |
| | | StringBuilder buffer = new StringBuilder(); |
| | | Iterator<AttributeValue> iterator = missingValues.iterator(); |
| | | buffer.append(iterator.next().getValue().toString()); |
| | | } |
| | | while (iterator.hasNext()) |
| | | { |
| | | buffer.append(", "); |
| | | buffer.append(iterator.next().getValue().toString()); |
| | | } |
| | | |
| | | throw new DirectoryException(ResultCode.NO_SUCH_ATTRIBUTE, |
| | | throw new DirectoryException(ResultCode.NO_SUCH_ATTRIBUTE, |
| | | ERR_MODIFY_DELETE_MISSING_VALUES.get( |
| | | String.valueOf(entryDN), attr.getName(), buffer)); |
| | | } |
| | | } |
| | | } |
| | | else |