-
Bug
-
Resolution: Fixed
-
P4
-
1.3.0
-
None
-
ladybird
-
sparc
-
solaris_2.6
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2110084 | 1.4.0 | Rosanna Lee | P4 | Resolved | Fixed | beta |
HierMemDirCtx is used by several service providers. It is used by the DSML
provider for representing directory contexts. It is used by the LDAP provider
for representing schema contexts. There are the following bugs in HierMemDirCtx.
1. rename() is totally broken. Its check for whether the parent contexts
are equal does the opposite check; it passes the complete name instead
of the atomic names to doRename().
2. modifyAttributes()'s ADD_ATTRIBUTE option, when asked to add attribute
values to an existing attribute, throws AttributeModificationException.
There is no reason why adding more values is not allowed because
HierMemDirCtx supports multivalued attributes.
It also does not clone the input attribute before storing it in internal
data structures.
3. modifyAttributes's REPLACE_ATTRIBUTE simply uses put() to add the new
attribute, possibly overwriting the old. In addition, it should handle
the case where no attribute value has been specified. According to JNDI,
this means to remove the attribute.
It also does not clone the input attribute before storing it.
4. modifyAttribute's REMOVE_ATTRIBUTE simply removes the attribute.
It does not take into account removing only specific values.
provider for representing directory contexts. It is used by the LDAP provider
for representing schema contexts. There are the following bugs in HierMemDirCtx.
1. rename() is totally broken. Its check for whether the parent contexts
are equal does the opposite check; it passes the complete name instead
of the atomic names to doRename().
2. modifyAttributes()'s ADD_ATTRIBUTE option, when asked to add attribute
values to an existing attribute, throws AttributeModificationException.
There is no reason why adding more values is not allowed because
HierMemDirCtx supports multivalued attributes.
It also does not clone the input attribute before storing it in internal
data structures.
3. modifyAttributes's REPLACE_ATTRIBUTE simply uses put() to add the new
attribute, possibly overwriting the old. In addition, it should handle
the case where no attribute value has been specified. According to JNDI,
this means to remove the attribute.
It also does not clone the input attribute before storing it.
4. modifyAttribute's REMOVE_ATTRIBUTE simply removes the attribute.
It does not take into account removing only specific values.
- backported by
-
JDK-2110084 providerutil's rename and modifyAttributes() do not work
-
- Resolved
-