-
Bug
-
Resolution: Fixed
-
P4
-
1.3.0
-
None
-
ladybird
-
sparc
-
solaris_2.6
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2110071 | 1.4.0 | Rosanna Lee | P4 | Resolved | Fixed | beta |
When DirContext.rebind() is used to overwrite an existing object,
the original LDAP entry is first removed, and then the new one added.
This is done in two steps because some servers (Netscape) does the
schema validation step-wise instead of after the list of modifications
have been completed (which by the way violates RFC 2251). Other
servers don't like the fact that objectclass is being deleted, while
others don't allow the objectclass attribute to be modified subsequent to
entry creation.
Currently, there is code that tries to recover if the addition fails.
It will try to add the original entry back. However, it doesn't do
this well enough and misses the case where the local JNDI client
throws an exception. Here are the two cases it missed:
Adding an attribute with 0 values
Adding an attribute that has a value that is neither String nor byte[].
the original LDAP entry is first removed, and then the new one added.
This is done in two steps because some servers (Netscape) does the
schema validation step-wise instead of after the list of modifications
have been completed (which by the way violates RFC 2251). Other
servers don't like the fact that objectclass is being deleted, while
others don't allow the objectclass attribute to be modified subsequent to
entry creation.
Currently, there is code that tries to recover if the addition fails.
It will try to add the original entry back. However, it doesn't do
this well enough and misses the case where the local JNDI client
throws an exception. Here are the two cases it missed:
Adding an attribute with 0 values
Adding an attribute that has a value that is neither String nor byte[].
- backported by
-
JDK-2110071 rebind failure causes existing object to be deleted
-
- Resolved
-